Payouts to bank cards
You can make a payout to a card following one of two scenarios described below.
All API operations are carried out within a payment session. One payment session can include several operations: for example, you can accept and then refund a payment.
Payout parameters
- With a token
- Without a token
To get a token, use our tokenization widget.
Name | Mandatory | Type | Description |
---|---|---|---|
payment_method/payout_details | + | object | Payout data |
type | + | string | Value: card |
card | + | object | Bank card payment details |
type | + | string | Value: encrypted_card |
encrypted_card | + | object | Encrypted card details |
number_hash | + | string | Card number hash |
amount_details | + | object | Amount |
amount | + | int | Amount in rubles in decimal format. The value must be greater than zero. To send 100 USD, specify 10000 |
currency | + | string | Currency code according to ISO 4217. Case insensitive |
participant_details | + | object | Information on the payout participants |
recipient | + | object | Recipient details |
full_name | + | string | Recipient's full name |
sender | - | object | Sender details |
Name | Mandatory | Type | Description |
---|---|---|---|
payment_method/payout_details | + | object | Payout data |
type | + | string | Value: card |
card | + | object | Bank card payment details |
type | + | string | Value: bank_card |
bank_card | + | object | Card details |
number | + | string | Card number |
amount_details | + | object | Amount |
amount | + | int | Amount in rubles in decimal format. The value must be greater than zero. To send 100 USD, specify 10000 |
currency | + | string | Currency code according to ISO 4217. Case insensitive |
participant_details | + | object | Information on the payout participants |
recipient | + | object | Recipient details |
full_name | + | string | Recipient's full name |
sender | - | object | Sender details |
- With a token
- Without a token
To create a payout using our widget, complete the following steps:
-
Complete Steps 1-5.
-
Create a payment session sending a
session/create
request.Alternatively, you can use the session-init-payout method. In this case, specify all the payout parameters right away as it is specified in the next step.
-
Send a
session/start/payout
request to start the payout.In the
EncryptedCard
object, pass the tokenized bank card details obtained from the widget.Example
curl -X POST \
https://demo.smart-glocal.com/api/v1/session/start/payout \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d'{
"session_id": "ps_31222806",
"amount_details": {
"amount": 3290,
"currency": "eur"
},
"payment_method": {
"type": "card",
"card": {
"type": "encrypted_card",
"encrypted_card": {
"number_hash": "3c6cdac9a24f4653512e35d62c76b329f145af5475028c3205dd219517cee33d"
}
}
},
"participant_details": {
"recipient": {
"full_name": "John Johnson"
},
"sender": {}
},
"customer": {
"reference": "984753"
},
"metadata": {
"metadata": "withdrawal_116",
"proxy_to_host": ""
}
}'To find information on the token or card, use the
token/info
method. This method also returns the last 4 numbers of the card, so that you can show the user where the amount is going. -
Wait for a
ready_to_confirm
webhook. When you received it, it means that Smart Glocal is ready to make the payout and is waiting for your confirmation. -
Send a
session/confirm
request or asession/cancel
request to confirm or cancel the operation. -
Wait for a
payment_finished
webhook containing the result of the payout. If the status issucceeded
, the payout was successful. Learn more about the payout statuses
Sequence diagram of payouts with the widget
To create a payout, complete the following steps:
-
Create a payment session sending a
session/create
request.Alternatively, you can use the session/init/payout method. In this case, specify all the payout parameters right away and skip the next step.
-
Send a
session/start/payout
request to start the payout.Example
curl -X POST \
https://demo.smart-glocal.com/api/v1/session/start/payout \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d'{
"session_id": "ps_31222806",
"payment_method": {
"type": "card",
"card": {
"type": "bank_card",
"bank_card": {
"number": "4242424242424242"
}
}
},
"participant_details": {
"recipient": {
"full_name": "John Johnson"
},
"sender": {}
},
"customer": {
"reference": "984753"
},
"metadata": {
"metadata": "withdrawal_116",
"proxy_to_host": ""
},
"amount_details": {
"amount": 1000,
"currency": "usd"
}
}' -
Wait for a
ready_to_confirm
webhook. When you receive it, it means that Smart Glocal is ready to make the payout and is waiting for your confirmation. -
Send a
session/confirm
request or asession/cancel
request to confirm or cancel the operation. -
Wait for a
payment_finished
webhook containing the result of the payout. If the status issucceeded
, the payout was successful. Learn more about the payout statuses