Rumba Pay
  • Welcome
  • Getting Started
    • Authentication
    • Signature
  • Payment methods
    • Argentina
      • Bank transfer Argentina
        • Payment
        • Payout
    • Brazil
      • PIX
        • Payment
        • Payout
    • Chile
      • Cash
        • Payment
      • Bank transfer Chile
        • Payment
        • Payout
  • Mexico
    • Cash
      • Payment
    • Bank transfer Mexico
      • Payment
      • Payout
  • Ukraine
    • P2C
      • Payment
    • Card
      • Payout
  • Kazakhstan
    • P2C
      • Payment
    • Card
      • Payout
  • Kyrgyzstan
    • P2C
      • Payment
    • Card
      • Payout
  • Uzbekistan
    • P2C
      • Payment
    • Card
      • Payout
Powered by GitBook
On this page
  • Callback
  • Check Payment Status
  1. Kazakhstan
  2. P2C

Payment

Overview

Base URLs: https://api.rumbapay.online/v1/

Data Format: JSON

HTTP Methods: POST, PUT, GET


Initialize payment

When creating a payment using the method https://api.rumbapay.online/v1/payment you must inspect the challenge.challenge_type field to determine the appropriate flow.

For this type of payment, you must set widget.method = bank_transfer_mexico and use the currency KZT.

Otherwise, you may receive the following error: 273:Invalid adapter route configuration

Method: HTTP POST

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

Request Body Type 1:

{
  "widget": {
    "method": "p2c",
    "locale": "en"
  },
  "reference": "ZD58UOTRNZ2NOcq",
  "currency": "KZT",
  "amount": 1000,
  "description": "My order payin",
  "customer": {
    "identifier": "1111-1111-2211-2211",
    "email": "juancarlos@hotmail.com",
    "phone": "+5491123456789",
    "first_name": "Juan",
    "last_name": "García Rodríguez",
    "middle_name": "Carlos",
    "country": "KZ",
    "state_code": "B",
    "city": "Buenos Aires",
    "address": "Calle Emilio Mitre 3256",
    "zip_code": "C1407",
    "itn": "12345678910",
    "birthday": "2006-01-02",
    "ip": "192.168.0.1",
    "gender": "male"
  },
  "redirect_url": "https://merchant.shop.com/",
  "cancel_url": "https://merchant.shop.com/cancel",
  "callback_url": "https://zcs4g1c3-7047.euw.devtunnels.ms/callback/success",
  "extra": [
    {
      "key_1": "value"
    },
    {
      "key_3": "value"
    }
  ]
}

Request Body Type 2:

{
  "method": "p2c",
  "reference": "ZD58UOTRNZ2NOcq",
  "currency": "KZT",
  "amount": 1000,
  "description": "My order payin",
  "customer": {
    "identifier": "1111-1111-2211-2211",
    "email": "juancarlos@hotmail.com",
    "phone": "+5491123456789",
    "first_name": "Juan",
    "last_name": "García Rodríguez",
    "middle_name": "Carlos",
    "country": "KZ",
    "state_code": "B",
    "city": "Buenos Aires",
    "address": "Calle Emilio Mitre 3256",
    "zip_code": "C1407",
    "itn": "12345678910",
    "birthday": "2006-01-02",
    "ip": "192.168.0.1",
    "gender": "male"
  },
  "redirect_url": "https://merchant.shop.com/",
  "cancel_url": "https://merchant.shop.com/cancel",
  "callback_url": "https://zcs4g1c3-7047.euw.devtunnels.ms/callback/success",
  "extra": [
    {
      "key_1": "value"
    },
    {
      "key_3": "value"
    }
  ]
}

Response (Success):

Response - 200 OK

  1. First, you should check error_code field of response.

    If error_code field is not equals to 0 - transaction is Failed.

  2. Second, you should check status field.

    The status field will always be set to created if there are no errors.

    Make check request or wait for a callback to get final transaction status.

Challenge type: redirect

{
    "identifier": "P2C000000381",
    "request_id": "fcd9927b-0528-4568-b29c-63d89e7f50c6",
    "reference": "564889b8-d61f-4e8e-a573-598739feafbb",
    "description": "My order h2h",
    "status": {
        "name": "created",
        "date": "2025-06-06T15:43:37.4530503Z"
    },
    "created_date": "2025-06-06T15:43:30.387",
    "amount": 10800.0,
    "billing_amount": 10800,
    "currency": "KZT",
    "challenge": {
        "challenge_type": "redirect",
        "challenge_redirect": {
            "url": "https://0f83hvls-7137.euw.devtunnels.ms/p/6c96ee77-085b-487c-9ec2-48144c56315f/confirm"
        }
    },
    "timestamp": "2025-06-06T15:43:37.7864915Z",
    "error_code": 0,
    "error_message": "success"
}

If the challenge.challenge_type is set to redirect, you must send your Customer to the URL specified in challenge.challenge_redirect.url.


Customer can complete the payment by either scanning the barcode with their banking app or manually transferring the funds using the payment details — both the barcode and payment information are available on the page at challenge.challenge_redirect.url.

Rumbapay sends a callback to the merchant's callback URL when the payment reaches a terminal state (success, error, etc.)

Response - 400 Bad request

{
    "error_code": 30,
    "error_reason": "Invalid params",
    "request_id": "f4d30fac-7da9-4fa0-8918-46d56f7d38b0",
    "error_fields": [
        {
            "field": "reference",
            "message": "reference is a required field"
        }
    ],
    "timestamp": "2025-04-11T16:58:57.11Z"
}

If incorrect values are provided for widget.method or currency, you may receive the following response:

{
    "error_code": 273,
    "error_message": "Invalid adapter route configuration"
}

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 payment request

  2. When the payment 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

{
  "identifier": "P2C000000387",
  "request_id": "c45bca03-1d39-4d27-b2e6-60b821544e4e",
  "reference": "39d21d0a-1fe2-4f77-969e-be4894520f4f",
  "description": "My order h2h",
  "status": {
    "name": "success",
    "date": "2025-06-06T16:02:47.757"
  },
  "created_date": "2025-06-06T16:01:33.224",
  "amount": 10800,
  "billing_amount": 10800,
  "currency": "KZT",
  "extra": [
    {
      "key": "key_1",
      "value": "value"
    },
    {
      "key": "key_2",
      "value": "value"
    },
    {
      "key": "key_3",
      "value": "value"
    },
    {
      "key": "key_4",
      "value": "value"
    }
  ],
  "timestamp": "2025-06-06T16:02:48.7266448Z",
  "error_code": 0,
  "error_message": "success"
}

Check Payment Status

Method: HTTP GET

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

Response (Success):

{
    "identifier": "P2C000000386",
    "request_id": "f290dd9a-def2-4f7c-81e0-11af7f20f37e",
    "reference": "f40b236f-5abb-439c-b756-c27a8c0f645e",
    "description": "My order h2h",
    "status": {
        "name": "created",
        "date": "2025-06-06T15:47:54.045"
    },
    "created_date": "2025-06-06T15:47:44.552",
    "amount": 10800.0000,
    "billing_amount": 10800.0000,
    "currency": "KZT",
    "extra": [
        {
            "key": "key_1",
            "value": "value"
        },
        {
            "key": "key_2",
            "value": "value"
        },
        {
            "key": "key_3",
            "value": "value"
        },
        {
            "key": "key_4",
            "value": "value"
        }
    ],
    "timestamp": "2025-06-06T15:48:54.8840229Z",
    "error_code": 0,
    "error_message": "success"
}

Response (Not Found):

Transaction not found

{
    "error_code": 101,
    "error_reason": "Transaction not found",
    "request_id": "16003088-037e-416c-9163-4e70e17d291b",
    "timestamp": "2025-04-11T16:58:57.11Z"
}
PreviousP2CNextCard

Last updated 3 days ago

We strongly recommend validating the callback signature to avoid suspicious activity. Follow the docs to prepare callback verification.

signature