Payout

Overview

UPI (Unified Payments Interface) is an Indian system for instantaneous payments, allowing direct money transfers between bank accounts via a mobile phone. Created by the National Payments Corporation of India (NPCI), it lets users connect various bank accounts to one mobile app. Transactions are performed with a unique UPI ID, formatted similarly to username@bank.

Key Features of UPI:

  • Around-the-Clock Payments: UPI enables fund transfers instantly, operating 24/7, even on public holidays.

  • Streamlined Security: For secure transactions, UPI employs a robust two-factor authentication process that integrates a mobile number, a unique UPI PIN, and an OTP.

  • Unified Account Management: A single application can be linked to numerous bank accounts, simplifying financial management for the user.

  • Broad Compatibility: Supported by nearly all major banks in India, UPI guarantees seamless operation across different financial institutions.

  • Versatile Use Cases: The system accommodates a wide range of payments, including person-to-person (P2P) transfers, person-to-merchant (P2M) purchases, and bill payments.

By offering a swift, simple, and accessible solution for anyone with a smartphone, UPI has fundamentally transformed the digital payment landscape in India.

Base URL:

  • https://api.rumbapay.online/v1/

Data Format: JSON

HTTP Methods: POST, GET


Initialize Payout

Method: HTTP POST

URL: https://api.rumbapay.online/v1/payout

Request Body:

{
  "method": "upi", // required
  "mode": "initial", // optional
  "reference": "334545", // required
  "currency": "INR", // required
  "amount": "200", // required
  "description": "My order", // required
  "upi": { // required
    "account": "ayushtyagi@uboi" // required
  },
  "customer": { // required
    "identifier": "12345", // required, may be used any unique value from system of merchant
    "email": "user@example.com", // optional
    "phone": "913324627351", // optional
    "first_name": "Darth", // required
    "last_name": "Vader", // required
    "middle_name": "Skywalker", // optional
    "country": "IN", // optional, ISO 3166-1
    "city": "Hansi", // optional
    "address": "Shri Syam Mandir Near", // optional,
    "state_code": "12", // optional
    "zip_code": "125042", // optional
    "itn": "22*******99", // optional
    "birthday": "2006-01-02", // optional
    "ip": "192.168.0.1", // optional
    "gender": "female" // optional
  },
  "callback_url": "https://merchant.domain/callback", // conditional
  "redirect_url": "https://google.com", // optional
  "cancel_url": "cancel_url",  // optional
  "extra": [{"key_1":"value"},{"key_2":"value"},{"key_3":"value"},{"key_4":"value"}]  // conditional
}

Response (Success):

{
    "status": "created",
    "identifier": "UPI003031455",
    "request_id": "89add07d-3e5c-47c0-809a-0d215f3750a3",
    "reference": "ecc65d44-1a89-4e8a-9fc9-a868743757f6",
    "description": "My order",
    "created_date": "2025-07-09T10:06:04.013",
    "amount": 200.0000,
    "billing_amount": 200.0000,
    "currency": "INR",
    "extra": [
        {
            "key": "key_1",
            "value": "value"
        },
        {
            "key": "key_2",
            "value": "value"
        },
        {
            "key": "key_3",
            "value": "value"
        },
        {
            "key": "key_4",
            "value": "value"
        }
    ],
    "timestamp": "2025-07-09T10:06:25.6287633Z",
    "error_code": 0,
    "error_message": ""
}

Response - 400 Bad request

{
    "error_code": 30,
    "error_reason": "Invalid params",
    "request_id": "15195dfe-95dd-4916-95e2-b9696cff61ba",
    "error_fields": [
        {
            "field": "currency",
            "message": "currency is a required field"
        }
    ],
    "timestamp": "2025-04-11T16:58:57.11Z"
}

Callback

On every completed Payout we send a callback notification to the URL you passed in the request in the callback_url field.

Callback flow

The callback flow follows these steps:

  1. Rumbapay processes the payout request

  2. When the payout status changes to a terminal state, Rumbapay sends an HTTP POST request to your callback URL

  3. Your server should process the callback, validate the signature, and update your system

  4. Your server should respond with HTTP 200 OK to acknowledge receipt

Example

{
    "status": "success",
    "identifier": "UPI003031455",
    "request_id": "89add07d-3e5c-47c0-809a-0d215f3750a3",
    "reference": "ecc65d44-1a89-4e8a-9fc9-a868743757f6",
    "description": "My order",
    "created_date": "2025-07-09T10:06:04.013",
    "amount": 200.0000,
    "billing_amount": 200.0000,
    "currency": "INR",
    "requisites": [],
    "extra": [
        {
            "key": "key_1",
            "value": "value"
        },
        {
            "key": "key_2",
            "value": "value"
        },
        {
            "key": "key_3",
            "value": "value"
        },
        {
            "key": "key_4",
            "value": "value"
        }
    ],
    "timestamp": "2025-07-09T10:06:25.6287633Z",
    "error_code": 0,
    "error_message": ""
}

Check Payout Status

Method: HTTP GET

URL: https://api.rumbapay.online/v1/transaction/{request_id}

Response (Success):

{
    "status": "success",
    "identifier": "UPI003031455",
    "request_id": "89add07d-3e5c-47c0-809a-0d215f3750a3",
    "reference": "ecc65d44-1a89-4e8a-9fc9-a868743757f6",
    "description": "My order",
    "created_date": "2025-07-09T10:06:04.013",
    "amount": 200.0000,
    "billing_amount": 200.0000,
    "currency": "INR",
    "requisites": [],
    "extra": [
        {
            "key": "key_1",
            "value": "value"
        },
        {
            "key": "key_2",
            "value": "value"
        },
        {
            "key": "key_3",
            "value": "value"
        },
        {
            "key": "key_4",
            "value": "value"
        }
    ],
    "timestamp": "2025-07-09T10:06:25.6287633Z",
    "error_code": 0,
    "error_message": ""
}

Response (Not Found):

Transaction not found

{
    "error_code": 101,
    "error_reason": "Transaction not found",
    "request_id": "5cf038ba-a5a8-43e8-9419-7a2a0932068f",
    "timestamp": "2025-04-11T16:58:57.11Z"
}

Last updated