Skip to main content

Handling International Transfer Callback

When a transaction status updates, Flip will send a request to the URL you’ve set up in your Flip for Business dashboard. This type of asynchronous request is known as a Callback. Flip uses these callbacks to notify your application about specific events. Flip will send an HTTP POST request to the callback URL you configured. The callback will contain information about the event, including transaction details or any relevant data related to the Flip product you’re using.

Response to Flip's Callback

Your callback URL must return a 200 HTTP Status Code immediately. If the URL returns another HTTP Status Code or if Flip doesn’t receive any response within 30 seconds (timeout), Flip will retry the request 5 times, with a 2-minute interval for the transaction callback (Money Transfer, Accept Payment, International Transfer).

Configure your Callback URL in Flip for Business Dashboard

  1. Navigate to the Developer Menu in the Flip for Business dashboard and select Manage API.
  2. In the Callback section, locate the product you are integrating with under the Callback URL section and save your callback URL there.
  3. We suggest creating a specific callback URL for each product you are integrating with. For example, if you are integrating with the International Transfer API, you should configure the International Transfer webhook URLs accordingly, and do the same for other products.

Sample International Transfer Callback Request

We will hit your URL using POST request with content type application/x-www-form-urlencoded and payload as described below:

AttributeDescription
dataJSON array string with content exactly the same as the response of disbursement or bank account inquiry (see example below)
tokenValidation token to ensure that the callback is coming from our server. You can get your token in your Flip for Business dashboard.

Successfull Transaction

data={
"id": 260,
"user_id": 12950853,
"company_id": 45529,
"exchange_rate": 11894.43,
"fee": 85000,
"amount": 1189443,
"source_country": "SGP",
"destination_country": "IDN",
"beneficiary_amount": 100,
"beneficiary_currency_code": "SGD",
"status": "DONE",
"timestamp": "2024-08-20 14:42:45",
"time_served": "2024-08-27 16:59:08",
"created_from": "API",
"receipt": "https://flip-receipt.oss-ap-southeast-5.aliyuncs.com/debit_receipt/",
"transaction_type": "C2C",
"idempotency_key": "test62347928356",
"beneficiary": {
"full_name": "felicia bc",
"bank_account_number": "67462374939049",
"email": "",
"bank": "BANK OF CHINA LIMITED",
"msisdn": "",
"nationality": null,
"country": "SGP",
"province": "Singapore",
"city": "Singapore",
"address": "",
"postal_code": "",
"relationship": "FRIEND",
"source_of_funds": "SALARY",
"remittance_purpose": "FAMILY_SUPPORT",
"iban": null,
"swift_bic_code": null,
"sort_code": null,
"ifs_code": null,
"bsb_number": null,
"branch_number": null,
"document_reference_number": null,
"registration_number": null,
"id_number": null,
"id_expiration_date": null
},
"sender": null,
"reason": ""
}&token=$2y$13$UsffNb9Y69sU4r5PzWgPwu038C28EUTM8wxSe4COTImnKbtQMnjzKxxsd

Cancelled Transaction

For Cancelled status, Flip will send the cancelled reason via callback. Possible reason can be seen here.

data = {
"id": 259,
"user_id": 12950853,
"company_id": 45529,
"exchange_rate": 11898.3,
"fee": 85000,
"amount": 1189830,
"source_country": "SGP",
"destination_country": "IDN",
"beneficiary_amount": 100,
"beneficiary_currency_code": "SGD",
"status": "CANCELLED",
"timestamp": "2024-08-20 11:43:08",
"time_served": "2024-08-27 17:00:52",
"created_from": "API",
"receipt": "",
"transaction_type": "C2C",
"idempotency_key": "test6387980509475",
"beneficiary": {
"full_name": "felicia bc",
"bank_account_number": "67462374939049",
"email": "",
"bank": "BANK OF CHINA LIMITED",
"msisdn": "",
"nationality": null,
"country": "SGP",
"province": "Singapore",
"city": "Singapore",
"address": "",
"postal_code": "",
"relationship": "FRIEND",
"source_of_funds": "SALARY",
"remittance_purpose": "FAMILY_SUPPORT",
"iban": null,
"swift_bic_code": null,
"sort_code": null,
"ifs_code": null,
"bsb_number": null,
"branch_number": null,
"document_reference_number": null,
"registration_number": null,
"id_number": null,
"id_expiration_date": null
},
"sender": null,
"reason": ""
}&token = $2y$13$UsffNb9Y69sU4r5PzWgPwu038C28EUTM8wxSe4COTImnKbtQMnjzKxxsd