Create a Transaction
Read for details on creating transaction
This API can be used to initiate a transfer. A transaction can be created only after the following criteria are fulfilled.
Sender's KYC status is other than UNVERIFIED or SUSPENDED.
At least one sender funding account has been added by the sender.
At least one Recipient has been added.
For transactions with funding_source=BANK
, a sender funding account with type=BANK
must be verified and active. For transactions with funding_source=CARD
, a sender funding account with type=CARD
must be active.
For transaction amount delivery, the recipient can either receive the amount directly in their bank account i.e. payout_method=BANK_DEPOSIT
, get the amount deposited in their wallet i.e. payout_method= WALLET
get the amount delivered to the recipient’s address i.e. payout_method = HOME_DELIVERY
, or the recipient can pickup the amount from various payout locations i.e. payout_method=CASH_PICKUP
.
For payout_method=BANK_DEPOSIT
, the recipients bank account information must be added and for payout_method=WALLET
, the recipient wallet account information must be added. However, for payout_method=CASH_PICKUP
and payout_method = HOME_DELIVERY
, the payer_id must be specified during transaction creation. You can get the list the payers available for the recipient's country through the payers API.
Supports Idempotency Key as part of header to avoid duplicate transaction.
POST /v2/senders/{{senderId}}/transactions
Supports Idempotency Key as part of header to avoid duplicate transaction. If you are creating a transaction with the same request and the same idempotency key again, the endpoint will consider this a duplicate request. It will not create a new transaction but will instead provide details of the initial transaction in the response.
Response
200 if a transaction is successfully created or transaction with the same idempotency key and request was created earlier
400 if the idempotency key is greater than 255 char
409 if the idempotency key is the same but the request is different
Field | Required | Type | Description |
---|---|---|---|
senderId | Yes, in URL | UUID | Sender ID |
sender_funding_account_id | Yes | UUID | Sender's Funding Account ID |
sender_amount | Yes | number | Amount sender wants to send |
fee_amount | Yes | number | Transaction fee to be charged to the sender |
bonus_amount | No | number | Bonus on the transaction. Refer to this for additional information. |
ip_address | Yes | String | IP address used to create the transaction |
recipient_id | Yes | UUID | Recipient's ID |
recipient_account_id | No | UUID | Recipient's Account ID. Recipient account can be recipient bank account or recipient wallet account. |
funding_source | No | String | Enumerated Value: |
payer_id | No | long | Payer ID. Required if payout_method= |
payout_method | No | String | Enumerated Value: |
exchange_rate | Yes | number | Exchange rate used in transaction. Accepts upto 4 decimal digits. |
recipient_amount | Yes | number | Amount that recipient receives |
recipient_currency | Yes | String | Currency of recipient currency |
remittance_purpose | Yes | String | Purpose of remittance |
note | No | String | Note. |
remarks | No | String | Remarks. |
calculation_mode | No | String | Enumerated value : SENDER_AMOUNT, RECEIVER_AMOUNT Default is SENDER_AMOUNT |
Calculation Mode
There are two calculation modes available while creating a transaction. These modes are based on which amount (sending or receiving) the system will take as a base for the calculation.
SENDER_AMOUNT: When a transaction is created with this calculation mode, you will pass the sending amount and exchange rate through the Transaction API. The receiving amount is calculated based on the provided sending amount and exchange rate. The default calculation mode is SENDER_AMOUNT.
RECEIVER_AMOUNT: When a transaction is created with this calculation mode, you will pass the total receiving amount, sending amount, and exchange rate through the Transaction API. We will then calculate the sending amount based on the provided receiving amount and exchange rate.
The calculated sending amount will then be compared with the sending amount you have provided in the request. If the difference between the calculated sending amount and the sending amount provided by you in the API request is greater than $0.01, the transaction API will provide the following error message.
For example, if the exchange rate today for USD to MEX, is 26.77 and the recipient_amount is 946, the sender amount would be 943/26.77 = 35.338. Since our API will take the difference up to $0.01, $35.34, would be accepted for a successful transaction.
Last updated