Appearance
Get Started
For more information about our API endpoints and authentication, please refer to our Authentication / REST API Endpoints Guide.
Endpoint POST
http
/api/payout/createHeaders
http
'Content-Type: application/json'
'Authorization: Bearer {access-token}'Payout Initiation
This endpoint is used for initiating payouts. It accepts a payload with various parameters for payout configuration.
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
currency | String | Yes | ISO 4217 currency code. only (EUR, GBP) are supported |
amount | Integer | Yes | Amount in cents (e.g., 1000 for 10 EUR). Min: 10000 | Max: 1000000 |
merchant_transaction_id | String | Yes | Unique transaction ID for merchant tracking. Max 150 chars |
customer_email | String | Yes | Customer's email. Used for identification and notifications |
payout_info | Object | Yes | Object containing bank account details for the payout. See Payout Info Object below |
customer_phone_number | String | No | Optional customer phone number |
customer_billing_info | Object | Yes | Object containing customer's billing details like name, address, etc. See Customer Billing Info Object below |
label | String | Yes | Description of the transaction. Max 25 chars |
webhook_url | String | Yes | URL endpoint that receives payout notifications via POST requests with JSON payloads. Must be a publicly accessible HTTPS URL that can accept webhook POST requests |
Payout Info Object
| Field | Type | Required depending on currency | Description |
|---|---|---|---|
bank_name | String | Yes | Name of customer's bank |
customer_iban | String | Yes (EUR) | IBAN of customer's bank account |
customer_bic | String | Yes (EUR) | BIC of customer's bank |
account_number | String | Yes (GBP) | Account number of customer's bank |
sort_code | String | Yes (GBP) | Sort code of customer's bank |
Customer Billing Info Object
| Field | Type | Required | Description |
|---|---|---|---|
customer_first_name | String | Yes | Customer's first name |
customer_last_name | String | Yes | Customer's last name |
customer_country_alpha_2 | String | Yes | ISO 2-letter country code (e.g., FR) |
customer_city | String | Yes | Customer's city |
customer_street_address | String | Yes | Customer's street address |
customer_postcode | String | Yes | Customer's postal code |
Example Request (SEPA)
json
{
"merchant_id": "999d2142-629c-4f32-b7ec-7ec5e7ee5f2f",
"merchant_transaction_id": "your-payment-id-4546-456",
"amount": 14800,
"currency": "EUR",
"customer_email": "email123@test.com",
"customer_ip": "192.168.1.1",
"customer_phone_number": "+1 647-244-2736",
"payout_info": {
"customer_iban": "FR5010096000405167372929B42",
"customer_bic": "AIBKIE2D",
"bank_name": "CIH",
"bank_country": "FR"
},
"customer_billing_info": {
"customer_first_name": "John",
"customer_last_name": "Doe",
"customer_country_alpha_2": "FR",
"customer_city": "Paris",
"customer_street_address": "24 rue de la paix",
"customer_postcode": "75000"
},
"label": "Withdrawal of Win 0001",
"webhook_url": "https://your-website.com/webhook"
}Successful Response (200 OK)
json
{
"status": 1,
"message": "success",
"data": {
"payout_id": "9dbefc91-b6ab-4610-a676-f7b469f9b638",
"payment_flow": "payout",
"amount": 14800,
"currency": "EUR",
"label": "Withdrawal of Win 0001",
"status_description": "Transaction under processing",
"status": "PENDING",
"merchant_id": "999d2142-629c-4f32-b7ec-7ec5e7ee5f2f",
"merchant_transaction_id": "your-payment-id-4546-456",
"environment": "SANDBOX"
}
}Example Request (FPS)
json
{
"merchant_id": "999d2142-629c-4f32-b7ec-7ec5e7ee5f2f",
"merchant_transaction_id": "your-payment-id-4546-456",
"amount": 14800,
"currency": "GBP",
"customer_email": "email11@test.com",
"customer_ip": "192.168.1.1",
"customer_phone_number": "+1 647-244-2736",
"payout_info": {
"account_number": "31926819",
"sort_code": "040026",
"bank_name": "Revolut"
},
"customer_billing_info": {
"customer_first_name": "John",
"customer_last_name": "Doe",
"customer_country_alpha_2": "FR",
"customer_city": "Paris",
"customer_street_address": "24 rue de la paix",
"customer_postcode": "75000"
},
"label": "Withdrawal of Win 0001",
"webhook_url": "https://your-website.com/webhook"
}Successful Response (200 OK)
json
{
"status": 1,
"message": "success",
"data": {
"payout_id": "9dbefc91-b6ab-4610-a676-f7b469f9b638",
"payment_flow": "payout",
"amount": 14800,
"currency": "GBP",
"label": "Withdrawal of Win 0001",
"status_description": "Transaction under processing",
"status": "PENDING",
"merchant_id": "999d2142-629c-4f32-b7ec-7ec5e7ee5f2f",
"merchant_transaction_id": "your-payment-id-4546-456",
"environment": "SANDBOX"
}
}HTTP Code sample for SEPA
1curl --location --request POST 'https://api-gateway-sandbox.huch.tech/api/payout/create' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer ' \
4--data-raw '{
5 "merchant_id": "999d2142-629c-4f32-b7ec-7ec5e7ee5f2f",
6 "merchant_transaction_id": "dfdb941c-7235-4f32-866a-265fb429e6e1",
7 "amount": 14800,
8 "currency": "EUR",
9 "customer_email": "email123@test.com",
10 "customer_ip": "192.168.1.1",
11 "customer_phone_number": "+1 647-244-2736",
12 "payout_info": {
13 "customer_iban": "FR5010096000405167372929B42",
14 "customer_bic": "AIBKIE2D",
15 "bank_name": "CIH",
16 "bank_country": "FR"
17 },
18 "customer_billing_info": {
19 "customer_first_name": "John",
20 "customer_last_name": "Doe",
21 "customer_country_alpha_2": "FR",
22 "customer_city": "Paris",
23 "customer_street_address": "24 rue de la paix",
24 "customer_postcode": "75000"
25 },
26 "label": "Withdrawal of Win 0001",
27 "webhook_url": "https://your-website.com/webhook"
28}'HTTP Code sample for FPS
1curl --location --request POST 'https://api-gateway-sandbox.huch.tech/api/payout/create' \
2--header 'Content-Type: application/json' \
3--header 'Authorization: Bearer ' \
4--data-raw '{
5 "merchant_id": "999d2142-629c-4f32-b7ec-7ec5e7ee5f2f",
6 "merchant_transaction_id": "dfdb941c-7235-4f32-866a-265fb429e6e1",
7 "amount": 10000,
8 "currency": "GBP",
9 "customer_email": "email321@test.com",
10 "customer_ip": "192.168.1.1",
11 "customer_phone_number": "+1 647-244-2736",
12 "payout_info": {
13 "account_number": "00057085",
14 "sort_code" : "041356",
15 "bank_name": "Revolut"
16 },
17 "customer_billing_info": {
18 "customer_first_name": "John",
19 "customer_last_name": "Doe",
20 "customer_country_alpha_2": "FR",
21 "customer_city": "Paris",
22 "customer_street_address": "24 rue de la paix",
23 "customer_postcode": "75000"
24 },
25 "label": "Withdrawal of Win 0001",
26 "webhook_url": "https://your-website.com/webhook"
27}'Important Notes
- All amounts must be provided in cents (e.g., 14800 = 148.00 EUR)
- The webhook URL must be publicly accessible and able to receive POST requests
- For SEPA payments, both IBAN and BIC are required
- For FPS payments (GBP), account number and sort code are required
- The label field is limited to 25 characters
- The merchant_transaction_id must be unique for each transaction
Errors
| Error code | Meaning |
|---|---|
| 400 | Invalid or missing information |
| 403 | Action not allowed |
See the Errors & Error Codes page for the shared error format, the X-Request-ID correlation header, and retry guidance.