Skip to main content

Payment refunds

You can refund a successful payment to the payer in full or in part using the session/refund method. The Bank 131 fee charged on the payment is non-refundable.

warning

A refund cannot be undone. Please make sure this action is necessary.

The payer can also dispute a payment through the chargeback procedure. Bank 131 will notify you if this happens.

For both operations, the amount is deducted from your settlement.

Records of refund and chargeback operations are included in the payment registry.

Step 1. Send a refund request​

Send a session/refund request. In the session_id field passing the identifier of the payment session you are refunding in the session_id parameter.

Pass the refund amount in the amount_details.amount parameter. If you leave this parameter empty, the full payment amount will be refunded to the payer.

Example
curl -X POST \
https://demo.bank131.ru/api/v1/session/refund \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_3230"
}'

Step 2. Wait for a webhook with the refund results​

Bank 131 will send you a payment_refunded webhook. You will find the result of the refund in the status field of the refunds array:

  • accepted—the refund has been completed successfully
  • in_progress—the refund is being processed
  • error—the refund has failed due to an error
  • declined—the refund has been declined by Bank 131
Example
curl -X POST \
https://partner.ru \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"type": "payment_refunded",
"session": {
"id": "ps_3230",
"status": "accepted",
"created_at": "2025-05-27T02:03:00.000000Z",
"updated_at": "2025-05-27T02:03:00.000000Z",
"acquiring_payments": [{
"id": "pm_2705",
"status": "succeeded",
"created_at": "2025-05-27T02:03:00.000000Z",
"finished_at": "2025-05-27T02:03:00.000000Z",
"customer": {
"reference": "lucky"
},
"payment_details": {
"type": "card",
"card": {
"brand": "mir",
"last4": "2058"
}
},
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"amounts": {
"fee": {
"merchant_fee": {
"amount": 100,
"currency": "RUB"
}
}
},
"metadata": "good",
"refunds": [{
"id": "rf_203",
"status": "accepted",
"created_at": "2025-05-27T02:03:00.000000Z",
"finished_at": "2025-05-27T02:03:00.000000Z",
"amount_details": {
"amount": 10000,
"currency": "rub"
},
"amounts": {
"fee": {
"merchant_fee": {
"amount": 0,
"currency": "RUB"
}
}
}
}]
}]
}
}'