Instamojo Refunds API

Create and retrieve refunds

OpenAPI Specification

instamojo-refunds-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Instamojo Payments Authentication Refunds API
  description: 'REST API for creating and managing payment requests, processing refunds, retrieving payment details, and managing orders for Indian businesses. Instamojo is trusted by over 1.2 million Indian small businesses.

    '
  version: '2.0'
  termsOfService: https://www.instamojo.com/terms/
  contact:
    name: Instamojo Support
    url: https://support.instamojo.com/
  license:
    name: Proprietary
    url: https://www.instamojo.com/terms/
servers:
- url: https://api.instamojo.com/v2
  description: Production server
- url: https://test.instamojo.com/v2
  description: Sandbox/Test server
security:
- BearerAuth: []
tags:
- name: Refunds
  description: Create and retrieve refunds
paths:
  /refunds/:
    get:
      tags:
      - Refunds
      summary: List Refunds
      description: Retrieve a list of all refunds.
      operationId: listRefunds
      parameters:
      - name: limit
        in: query
        description: Number of results per page
        required: false
        schema:
          type: integer
          minimum: 1
          maximum: 200
      - name: page
        in: query
        description: Page number for pagination
        required: false
        schema:
          type: integer
          minimum: 1
      responses:
        '200':
          description: List of refunds
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  refunds:
                    type: array
                    items:
                      $ref: '#/components/schemas/Refund'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      tags:
      - Refunds
      summary: Create a Refund
      description: 'Initiate a refund for a payment. You can specify a partial refund amount or leave it blank to refund the full transaction amount.

        '
      operationId: createRefund
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundCreate'
            example:
              payment_id: MOJO5a06005J21512345
              type: RFD
              body: Customer requested a refund within 7 days.
              refund_amount: '250.00'
      responses:
        '200':
          description: Refund created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  refund:
                    $ref: '#/components/schemas/Refund'
        '400':
          description: Bad request - validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /refunds/{id}/:
    get:
      tags:
      - Refunds
      summary: Get Refund Details
      description: Retrieve details of a specific refund by its ID.
      operationId: getRefund
      parameters:
      - name: id
        in: path
        description: Unique refund ID
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Refund details
          content:
            application/json:
              schema:
                type: object
                properties:
                  success:
                    type: boolean
                    example: true
                  refund:
                    $ref: '#/components/schemas/Refund'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Authentication required or token expired
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Refund:
      type: object
      properties:
        id:
          type: string
          description: Unique refund ID
          example: C5c0751269
        payment_id:
          type: string
          description: Associated payment ID
        status:
          type: string
          description: Refund status
          enum:
          - Pending
          - Processed
          - Rejected
        type:
          type: string
          description: Refund type code
        body:
          type: string
          description: Refund reason
        refund_amount:
          type: string
          description: Amount being refunded
        total_amount:
          type: string
          description: Total transaction amount
        created_at:
          type: string
          format: date-time
    Error:
      type: object
      properties:
        success:
          type: boolean
          example: false
        message:
          type: string
          description: Error message describing what went wrong
        errors:
          type: object
          description: Field-level validation errors
          additionalProperties:
            type: array
            items:
              type: string
    RefundCreate:
      type: object
      required:
      - payment_id
      - type
      - body
      properties:
        payment_id:
          type: string
          description: Payment ID for which refund is being requested
          example: MOJO5a06005J21512345
        type:
          type: string
          description: 'Short-code identifying the refund type: RFD = Refund, TNR = Test Refund, QFL = Quality/Fulfillment Issue, QNR = Quality Not as Represented, EWN = Event/Workshop Not Held, TAN = Technical Issue/App Not Working, PTH = Paid to Wrong Handle

            '
          enum:
          - RFD
          - TNR
          - QFL
          - QNR
          - EWN
          - TAN
          - PTH
        body:
          type: string
          description: Explanation for the refund request
        refund_amount:
          type: string
          description: Partial refund amount in INR. Defaults to full transaction amount.
          pattern: ^\d+(\.\d{1,2})?$
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: OAuth2 Bearer token obtained from /oauth2/token/