Respawn PayDocs

Global Payments

Global payments gateway

Coverage in Latin America, Asia and Africa. You integrate a single API. Routing by country, currency and payment method is done automatically by Respawn Pay.

Supported Countries and Methods

Latin America

CountryCurrencyCodeReceiving MethodWithdrawal Method
BrazilRealBRLPIXPIX (CPF/CNPJ/Email/Tel/EVP)
MexicoMexican pesoMXNLocal transferSPEI (CLABE)
PeruPeruvian solPENLocal transferBank transfer
ChileChilean pesoCLPLocal transferBank transfer
ColombiaColombian pesoCOPPSE / TransferBank account
VenezuelaBolivarVESLocal transferBank transfer
EcuadorDollar (local)USDLocal transferBank transfer
ArgentinaArgentine pesoARSLocal transferBank transfer

Asia

CountryCurrencyCodeReceiving MethodWithdrawal Method
IndiaRupeeINRUPI / IMPSUPI (VPA) / IMPS / NEFT (IFSC)
IndonesiaRupeeIDRVirtual AccountBank transfer
RussiaRubleRUBLocal transferBank transfer
PhilippinesPesoPHPLocal transferCard / GCash
MalaysiaRinggitMYRFPX / Online bankingBank transfer
PakistanRupeePKREasyPaisa / JazzCashEasyPaisa / JazzCash
BangladeshTakaBDTbKash / NagadbKash / Nagad

Africa

CountryCurrencyCodeReceiving MethodWithdrawal Method
KenyaShillingKESM-PesaM-Pesa
NigeriaNairaNGNBank transferBank account (CBN)
TanzaniaShillingTZSTigo Pesa / AirtelMobile Money

Authentication

All endpoints accept authentication via API Key (recommended for server-to-server).

HeaderDescription
X-Client-IdYour account's client ID
X-API-KeySecret API key

Both headers must be sent together. Sending only one results in a 403 Forbidden error.

Create Charge (Pay-in)

POSThttps://api.respawnpay.com/api/transaction/create

Example - Brazil (BRL / PIX)

bash
curl --location 'https://api.respawnpay.com/api/transaction/create' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: order-BR-00451' \
--data '{
"amount": 25000,
"paymentMethod": "PIX",
"currency": "BRL",
"postbackUrl": "https://yoursite.com/webhook",
"customer": {
"name": "Maria Souza",
"email": "maria@email.com",
"externalRef": "usr_789",
"document": { "number": "98765432100", "type": "CPF" }
},
"items": [{ "title": "Balance top-up", "unitPrice": 25000, "quantity": 1 }]
}'

Example - Mexico (MXN)

bash
curl --location 'https://api.respawnpay.com/api/transaction/create' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: order-MX-00452' \
--data '{
"amount": 50000,
"paymentMethod": "TRANSFER",
"currency": "MXN",
"postbackUrl": "https://yoursite.com/webhook",
"customer": {
"name": "Carlos Mendez",
"email": "carlos@email.com",
"document": { "number": "MEMC801201AB4", "type": "CURP" }
}
}'

Example - India (INR / UPI)

bash
curl --location 'https://api.respawnpay.com/api/transaction/create' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: order-IN-00453' \
--data '{
"amount": 100000,
"paymentMethod": "UPI",
"currency": "INR",
"postbackUrl": "https://yoursite.com/webhook",
"customer": {
"name": "Raj Kumar",
"email": "raj@email.com"
}
}'

Example - Kenya (KES / M-Pesa)

bash
curl --location 'https://api.respawnpay.com/api/transaction/create' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: order-KE-00466' \
--data '{
"amount": 1000000,
"paymentMethod": "MPESA",
"currency": "KES",
"postbackUrl": "https://yoursite.com/webhook",
"customer": {
"name": "John Mwangi",
"email": "john@email.com",
"phone": "+254712345678"
}
}'

Response (200 OK)

json
{
"data": {
"id": "202304151647256461949132800",
"externalRef": "usr_789",
"amount": 25000,
"companyId": 42,
"paymentMethod": "PIX",
"status": "WAITING_PAYMENT",
"pix": {
"brcode": "00020126580014br.gov.bcb.pix...",
"qrcode": "data:image/png;base64,iVBORw0KGgo...",
"txId": "202304151647256461949132800",
"expiresAt": "2023-04-16T15:47:25Z"
}
},
"status": 200,
"message": "Transação criada e registrada com sucesso."
}

Create Withdrawal (Pay-out)

POSThttps://api.respawnpay.com/api/withdraw/request

Idempotency-Key is required on withdrawals. It ensures the same request does not generate two withdrawals on retry.

Example - Brazil (PIX)

bash
curl --location 'https://api.respawnpay.com/api/withdraw/request' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: wd-BR-user789-001' \
--data '{
"companyId": 42,
"amount": 5000,
"currency": "BRL",
"pixKey": "98765432100",
"pixKeyType": "CPF",
"creditorDocument": "98765432100",
"description": "User withdrawal"
}'

Example - Mexico (SPEI)

bash
curl --location 'https://api.respawnpay.com/api/withdraw/request' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: wd-MX-user790-001' \
--data '{
"companyId": 42,
"amount": 80000,
"currency": "MXN",
"description": "Pago al usuario",
"metadata": {
"beneficiaryName": "Carlos Mendez",
"accountNum": "032180000118359719",
"bankCode": "032",
"channel": "SPEI"
}
}'

Example - India (UPI)

bash
curl --location 'https://api.respawnpay.com/api/withdraw/request' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: wd-IN-user792-001' \
--data '{
"companyId": 42,
"amount": 100000,
"currency": "INR",
"description": "User payout",
"metadata": {
"beneficiaryName": "Raj Kumar",
"vpa": "raj@oksbi",
"channel": "UPI"
}
}'

Example - Kenya (M-Pesa)

bash
curl --location 'https://api.respawnpay.com/api/withdraw/request' \
--header 'Content-Type: application/json' \
--header 'X-Client-Id: cli_abc123' \
--header 'X-API-Key: sk_live_xxxx' \
--header 'Idempotency-Key: wd-KE-user794-001' \
--data '{
"companyId": 42,
"amount": 50000,
"currency": "KES",
"description": "User payout",
"metadata": {
"beneficiaryName": "John Mwangi",
"accountNum": "254712345678",
"channel": "MPESA"
}
}'

Fields per Country - Pay-out (metadata)

Latin America

CountryCurrencyFields in metadata
BrazilBRLpixKey, pixKeyType (top-level)
MexicoMXNbeneficiaryName, accountNum (CLABE), bankCode, channel: "SPEI"
ColombiaCOPbeneficiaryName, accountNum, bankCode, accountType, channel: "PSE"
ArgentinaARSbeneficiaryName, accountNum (CBU/CVU 22 digits), channel: "BANK_TRANSFER"

Asia

CountryCurrencyFields in metadata
India (UPI)INRbeneficiaryName, vpa (e.g. user@oksbi), channel: "UPI"
India (IMPS)INRbeneficiaryName, accountNum, ifscCode, channel: "IMPS"
PhilippinesPHPbeneficiaryName, cardNo (GCash phone), channel: "GCASH"
PakistanPKRbeneficiaryName, accountNum, channel: "EASYPAISA" | "JAZZCASH"

Africa

CountryCurrencyFields in metadata
KenyaKESbeneficiaryName, accountNum (phone), channel: "MPESA"
NigeriaNGNbeneficiaryName, accountNum (10 digits), bankCode (CBN), channel: "BANK_TRANSFER"
TanzaniaTZSbeneficiaryName, accountNum (phone), channel: "TIGOPESA" | "AIRTEL"

Status Mapping

Charge (Pay-in)

StatusMeaningAction
WAITING_PAYMENTAwaiting paymentShow QR code / instructions
successfulPayment confirmedCredit balance / release the order
failurePayment failedNotify the user
refundedPayment refundedReverse the credit

Withdrawal (Pay-out)

StatusMeaningAction
processingProcessingWait for callback
successfulWithdrawal completedConfirm to the user
failureWithdrawal failedRefund the reserved balance
refundedWithdrawal reversedCredit back

Best Practices

Always idempotent

Send Idempotency-Key on every charge and withdrawal. Use a unique ID from your system.

Amounts in cents

amount is always an integer in cents. R$ 10.50 = 1050, MXN 500 = 50000.

Implement the webhook

Do not rely on polling. The final status always arrives via callback.

Do not trust the initial withdrawal status

processing is not final. A withdrawal can change from failure to successful hours later.

Webhook duplicate control

The same event may arrive more than once. Store processed IDs and ignore repeats.