Skip to content

Endpoints: Status and Payout

Transaction status check endpoint. Called by Business Service periodically (polling) until transaction reaches final status. Polling intervals are defined in gateway_settings.status_checker_time_rates.

{
"method_name": "status",
"payment": {
"token": "tok_xxxx",
"gateway_token": "bank_trx_12345"
},
"settings": {
"api_key": "provider_api_token"
}
}
Field Type Required Description
method_name string yes Always "status"
payment.token string yes Payment token from original /pay request
payment.gateway_token string yes Provider transaction identifier
settings object yes Settings (see Settings and Statuses)
{
"result": true,
"status": "approved",
"details": "Charge successful",
"amount": 10000,
"currency": "USD",
"logs": [...]
}
Field Type Required Description
result boolean yes true — successful status request
status string yes approved, declined or pending
details string no Details
amount integer yes Amount in kopecks
currency string yes Currency (ISO 4217)
logs array yes Provider request log (format — Basic Contracts)
  • While status is pending — Business Service repeats requests with intervals from status_checker_time_rates
  • Status approved or declined — final, polling stops
  • If payment is not in final status — status checker continues until final status is reached

Payout endpoint. Unlike POST /pay, Gateway receives recipient data in params.card or params.bank_account.

Payout to bank account:

{
"method_name": "payout",
"params": {
"amount": 50000,
"currency": "EUR",
"customer": {
"email": "receiver@test.com",
"ip": "127.0.0.1"
},
"bank_account": {
"account_number": "IE1234567890123456",
"bank_code": "BOFI"
}
},
"payment": {
"token": "payout_tok_xxxx"
},
"settings": {
"api_key": "provider_api_token"
}
}

Payout to card:

{
"method_name": "payout",
"params": {
"amount": 50000,
"currency": "EUR",
"customer": {
"email": "receiver@test.com"
},
"card": {
"pan": "4111111111111111"
}
},
"payment": {
"token": "payout_tok_xxxx"
},
"settings": { ... }
}
Field Type Required Description
method_name string yes Always "payout"
params.amount integer yes Amount in kopecks
params.currency string yes Currency (ISO 4217)
params.customer object yes Recipient data
params.card object no Recipient card data
params.card.pan string no Card number
params.card.card_token_from string no Saved card token (for PAN recovery)
params.bank_account object no Account details
params.bank_account.account_number string no Account number
params.bank_account.bank_code string no Bank code
payment.token string yes Payout token
settings object yes Settings (see Settings and Statuses)

Response format matches POST /pay (see Basic Contracts).

Successful payout:

{
"result": true,
"status": "approved",
"gateway_token": "payout_12345",
"amount": 50000,
"currency": "EUR",
"details": "Payout successful",
"logs": [...]
}

Payout in processing:

{
"result": true,
"status": "pending",
"gateway_token": "payout_12345",
"amount": 50000,
"currency": "EUR",
"logs": [...]
}

Payout rejection check considers setting settings.decline_payout_on_request_error:

  • If flag is set — any network error (timeout, 5xx) leads to payout rejection
  • If flag is not set — network error does not lead to rejection (status remains “in processing”)
  • status: "declined" or result: false — always leads to rejection