Create Payment
Initiate a B2B bank transfer to a recipient IBAN.
Request Parameters
| Name | Type | Description |
|---|---|---|
public_keyRequired | String | Merchant public key. |
order_idRequired | String | Unique order identifier generated by the merchant. Returned in the response and used for status tracking. |
amountRequired | Number | Transfer amount. Min: `0.01`, Max: `40000`. |
descriptionRequired | String | Payment description. Max 255 characters. |
ibanRequired | String | Recipient IBAN. Must start with `AZ`. Example: `AZ29ABCD38053AZN00A7100186514`. |
nameRequired | String | Recipient name. Max 255 characters. |
tinRequired | String | Recipient TIN. 10 digits, last digit `1` (individual) or `2` (legal entity). Example: `1234567891`. |
bank_codeRequired | String | Recipient bank code. Example: `505141`. |
bank_nameOptional | String | Recipient bank name. |
emailOptional | String | Recipient email. |
addressOptional | String | Recipient address. |
additional_infoOptional | String | Additional information. |
bulk_descriptionOptional | String | Bulk payment description. |
webhook_urlOptional | String | URL for terminal status notifications. |
Request Example
Send Request
Payload
{ "public_key": "YOUR_PUBLIC_KEY", "order_id": "order-20240430-001", "amount": "1000.00", "description": "Advance payment", "iban": "AZ29ABCD000000000000000000000", "name": "Technology LLC", "tin": "1234567891", "bank_code": "505141", "bank_name": "Example Bank", "webhook_url": "https://yoursite.com/webhooks/epoint-b2b-payment"}1DATA=$(echo -n '{"public_key":"YOUR_PUBLIC_KEY","order_id":"order-20240430-001","amount":"1000.00","description":"Advance payment","iban":"AZ29ABCD000000000000000000000","name":"Technology LLC","tin":"1234567891","bank_code":"505141"}' | base64)2SIGNATURE=$(echo -n "$PRIVATE_KEY$DATA$PRIVATE_KEY" | openssl dgst -sha1 -binary | base64)3
4curl -X POST *** \5-H "Content-Type: application/json" \6-d "{\"data\":\"$DATA\",\"signature\":\"$SIGNATURE\"}"Response Parameters
| Name | Type | Description |
|---|---|---|
statusRequired | String | Operation result: `success` or `error`. |
order_idOptional | String | The merchant-provided order identifier, echoed back from the request. |
bulkIdOptional | String | Bank bulk operation identifier. |
Response
1{2 "status": "success",3 "order_id": "order-20240430-001",4 "bulkId": "11523"5}Error Codes
| HTTP Code | Reason |
|---|---|
422 | Validation error or malformed data |
403 | Merchant not found or inactive |
500 | Signature mismatch or internal error |
Webhook Notification
When a terminal status (SUCCESS or FAILED) is reached, a POST request is sent to the webhook_url.
{
"order_id": "order-20240430-001",
"status": "success",
"amount": "1000.00",
"payee_iban": "AZ29ABCD000000000000000000000",
"payee_name": "Technology LLC",
"error_message": null
}status | Meaning |
|---|---|
success | BANK_SUCCESS — payment completed |
failed | Any terminal error status |
Your webhook endpoint must return
200 OK. On failure, retried 4 times with exponential backoff (60s → 120s → 180s → 240s).