Payout creation

Interaction

  1. Your server sends a request to create a transaction (deal) and receives a transaction ID.

  2. The system processes the transfer to a user to the specified requisites and sends a webhook notification to your server about the successful or unsuccessful payment.

Backend integration

The API is designed to integrate your backend with the system for processing payments to user's requisites. You can create a payout request by specifying the amount, payment requisites, cashier ID and your webhook link to receive notifications about the transaction status.

The API supports various types of payment requisites, including bank cards and phone numbers for transfers via the 'SBP' payment method.

Request

POST https://repay.cx/payout_api/v1/external/payout_deals/

Headers

Name
Type
Description

api-key

string

Сashier's API key

Body

Name
Type
Description
Required

amount

string (number)

Transfer amount

bank_id

string

Bank ID matching the requisites

option_id

string

Bank ID if the transfer is made via 'SBP' payment method

requisites

string

Card number, phone or requisites of the recipient

requisites_type

string

Requisites types: card_number for cards phone_number for 'SBP' payment method account_number for transfers by account number

webhook_url

string

Address for receiving a webhook with the result of processing the transaction

order_id

string

Your internal transaction ID

payload

object

Additional information for user identification including user_id

payload.user_id

string

Unique client ID on your side

cURL Example

curl -X POST https://repay.cx/payout_api/v1/external/payout_deals/ \
  -H "api-key: cashier_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 1000,
    "bank_id": "bd02ced3-36a5-4aad-b0af-bf1f86065a79",
    "requisites": "2202098765432109",
    "requisites_type": "card_number",
    "webhook_url": "https://domain.com/webhook",
    "order_id": "0001",
    "payload": {
        "user_id": "bd01ced4-36a4-4aad-b0af-bf1f86095a79"
    }
  }'

Response

Example of a successful response

{
    "status_code": 200,
    "error": {},
    "payload": {
        "id": "3fac9f77-776a-4567-b5b5-fc75f5349889",
        "state": "created",
        "bank_id": "bd02ced3-36a5-4aad-b0af-bf1f86065a79",
        "bank_name": null,
        "bank_title": null,
        "merchant_title": null,
        "option_id": null,
        "option_name": null,
        "option_title": null,
        "requisites_num": "2202201374695646",
        "requisites_type": "card_number",
        "amount": "1000.000",
        "commission": "1.0196",
        "commission_sign": "₮",
        "amount_usdt": "11.2161",
        "webhook_url": "https://google.com/webhook",
        "currency_sign": null,
        "currency_name": null,
        "payload": {},
        "order_id": "ee772cd7-64e6-42e1-bd6f-b213d5e06872",
        "created_at": "2024-10-04T12:42:03.310889+00:00",
        "external_order_id": null,
        "merchant_id": null,
        "user_id": null,
        "cheques": []
    }
}
Name
Type
Description

payload

object

Basic payload of the response with transaction data

payload.id

string

Unique identifier of created transaction

payload.state

string

Status of transaction, for example created

payload.bank_id

string

Bank ID linked to the requisites

payload.requisites

string

Card or requisites number

payload.requisites_type

string

Requisites types: card_number

phone_number

payload.amount

string (number)

Amount of transfer in fiat currency

payload.comission

string

Amount of сomission

payload.comission_sign

string

Merchant’s transaction tether

payload.amount_usdt

string (number)

Amount of transaction in USDT

payload.webhook_url

string

URL to send a webhook notifying about the status of transaction

payload.order_id

string

ID you provided when creating a transaction

payload.created_at

string

Creation time of transaction

Example of an unsuccessful response

  1. If the card number does not match the bank of the method:

    {
      "detail": "Invalid card number"
    }
  2. If the cashier balance is insufficient to make a payment:

    {
      "detail": "Not enough money"
    }
  3. If the card number is not valid:

    {
      "detail": "Invalid requisites"
    }

Possible errors

Code
Name
Description

400

Bad request

Incorrect request

Last updated