Overview
The International Transfer API solution is designed for businesses, particularly money transfer operators, seeking to offer their users a cost-effective, secure, and swift way to handle international transfers.
C2C (Consumer to Consumer) and C2B (Consumer to Business) For consumer-focused transactions, the API supports both C2C (Consumer to Consumer) and C2B (Consumer to Business) transfers, allowing individuals to send money directly to other individuals or businesses.
B2B (Business to Business) and B2C (Business to Consumer) For business transactions, the API provides support for B2B (Business to Business) and B2C (Business to Consumer) transfers, enabling businesses to send funds to other businesses or directly to consumers.
The API currently covers several international corridors, and we are continuously expanding to include more options.
Step for Integration
To ensure a smooth integration with Flip's International Transfer API, please follow the steps outlined below. This process will guide you from initial testing to live production, ensuring that your system is fully prepared for a seamless operation. To integrate with International Transfer, please follow the steps given below:
1. Preparation Steps Before Integration
-
Testing in Test Mode/Sandbox
Start by testing your integration in the Test Mode/Sandbox environment. You can access it here: Flip Sandbox Overview. -
Preparing and Retrieving API Secret Keys
To verify that the HTTP requests we receive are genuinely from you, it's crucial to use basic authentication with your API Secret Key for every request you send. Flip’s API Gateway employs basic access authentication. The format is[username]:[password]; use your API Secret key as the username and leave the password field empty. Then, encode this string in Base64. The resulting encoded string must be included in the Authorization HTTP header for every API call. For development make sure you use the Test environment's API Secret Key. Read for more information for Retrieving API Secret Key.- Here’s an example of an authentication string (in plain text) - note the colon:
JDJ5JDEzJDBkRTB6T2tBdk8uQWcvRDU2TTY0TmVQd0NrNC5POVF5elZuQnpJUTJvdWc4a2t0Tm44RnlT:
- And the corresponding Base64 encoded string:
SkRKNUpERXpKREJrUlRCNlQydEJkazh1UVdjdlJEVTJUVFkwVG1WUWQwTnJOQzVQT1ZGNWVsWnVRbnBKVVRKdmRXYzRhMnQwVG00NFJubFQ6
- For the HTTP Authorization header, it should look like this:
Authorization: Basic SkRKNUpERXpKREJrUlRCNlQydEJkazh1UVdjdlJEVTJUVFkwVG1WUWQwTnJOQzVQT1ZGNWVsWnVRbnBKVVRKdmRXYzRhMnQwVG00NFJubFQ6
Base64 Code Simulator
Live Editorfunction Base64Encoder() { // Replace the value with your test mode API Secret Key const apiSecretKey = 'JDJ5JDEzJDBkRTB6T2tBdk8uQWcvRDU2TTY0TmVQd0NrNC5POVF5elZuQnpJUTJvdWc4a2t0Tm44RnlT' const [encodedString, setEncodedString] = useState(''); useEffect(() => { // Encode the API Secret Key to Base64 const encoded = btoa(`${apiSecretKey} + :`); setEncodedString(encoded); }, [apiSecretKey]); return ( <div> <h2>Base64 Encoded String:</h2> <p>{encodedString}</p> </div> ) }
ResultLoading... - Here’s an example of an authentication string (in plain text) - note the colon:
2. Generate Signature (Optional)
Signature is used to secure your API request and prevent attackers from altering your payload. It is optional and disabled by default. This feature is only applicable to Disbursement-related APIs. If you want to use signature, follow these steps:
- Generate a public and private key pair using the
OPENSSL_KEYTYPE_RSA 2048-bitalgorithm. - Send your public key to Flip API Integration team and notify when you're ready to make requests with a signature.
- Generate the signature using your private key with input data from your POST and GET request parameters, encoded as strings (ensure all data types are strings).
The signature must use the
sha256WithRSAEncryptionalgorithm and be encoded with Base64.
Generate Signature Algorithm
function generateSignature(privateKey, payload) {
const payloadString = JSON.stringify(payload); // Step 1: Convert payload to string
const sign = createSignature(payloadString, privateKey); // Step 2: Create signature with sha256WithRSAEncryption algorithm
const signature = btoa(sign); // Step 3: Convert signature to Base64
return signature;
}
// In actual implementation, use a library like crypto-js, or Web Crypto API
function createSignature(data, key) {
return `signature`;
}
// Example usage:
const privateKey = "your-private-key";
const payload = {
"account_number": "0437051936",
"bank_code": "bni",
"amount": "10000",
"remark": "testing",
"recipient_city": "391",
"beneficiary_email": "",
};
const signature = generateSignature(privateKey, payload);
console.log("Generated Signature:", signature);
- For every Disbursement API request, include the X-Signature header. Sample request with Signature in the Header :
Sample Request with Signature:
curl -X POST 'https://bigflip.id/big_sandbox_api/v2/disbursement/bank-account-inquiry' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json; charset=UTF-8' \
-H 'Authorization: Basic <Base64(Your-API-SecretKey + :)>' \
-H 'X-Signature: Your-Generated-Signature' \ # <-- Signature
-d 'account_number=5465327020' \
-d 'bank_code=bca' \
-d 'inquiry_key=your-unique-id-12344'
3. Get Exchange Rate
Before initiating an international transfer, it's essential to know the applicable rates for the destination country. You can use the Get Exchange Rates API, which provides not only the exchange rates but also key details for the destination corridors, such as the minimum and maximum transfer amounts, cut-off times, estimated arrival times, and transfer fees. This information will help you understand the requirements and costs associated with the transfer.
Request Details
| Requirement | Description |
|---|---|
| API Secret Key | The api key that will be used to authenticate the request. For more details, refer to Retrieving API Access Keys. |
country_iso_code | Country code using ISO 3166 (Alpha-3). You can choose multiple countries separate by comma. See supported Country ISO Codes. |
transaction_type | Transaction type information. C2C, C2B, B2B, B2C |
Sample Request:
curl -L 'https://bigflip.id/big_sandbox_api/v2/international-disbursement/exchange-rates?country_iso_code=SGP&transaction_type=C2C' \
-H 'Accept: application/json; charset=UTF-8' \
-H 'Authorization: Basic <Base64(Your-API-SecretKey + :)>'
Sample Response:
- SUCCESS
[
{
"currency_code": "SGD",
"country_code": "SG",
"country_name": "Singapore",
"country_iso_code": "SGP",
"flip_exchange_rate": 11886.6,
"flip_transfer_fee": 85000,
"minimum_amount": 1,
"maximum_amount": 200000,
"payment_speed": "Real Time",
"arrival_message": "Uang diperkirakan sampai dalam hitungan detik.",
"notes": null,
"transaction_type": "C2C",
"flip_cutoff_time": "2024-08-30 15:41:54+0700",
"flip_arrival_time": "2024-08-30 15:41:54+0700",
"is_active": true
}
]
Refer to this page for more information about the Get Exchange Rate API Reference.
4. Get Form Data
This endpoint retrieves a form with all the required fields needed to create a transaction, including details like the remittance purpose, source of funds, relationship with the beneficiary, and the beneficiary’s bank account information.
Request Details
| Requirement | Description |
|---|---|
| API Secret Key | The api key that will be used to authenticate the request. For more details, refer to Retrieving API Access Keys. |
country_iso_code | Country code using ISO 3166 (Alpha-3). You can choose multiple countries separate by comma. See supported Country ISO Codes. |
transaction_type | Transaction type information. C2C, C2B, B2B, B2C |
Sample Request:
curl -L 'https://bigflip.id/big_sandbox_api/v2/international-disbursement/form-data?country_iso_code=SGP&transaction_type=C2C' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json; charset=UTF-8' \
-H 'Authorization: Basic <Base64(Your-API-SecretKey + :)>' \
Sample Response:
- SUCCESS
{
"country_iso_code": "SGP",
"currency_code": "SGD",
"beneficiary_relationships": {
"SELF": "Diri Sendiri",
"FATHER": "Orang Tua",
"BROTHER": "Keluarga",
"FRIEND": "Teman"
},
"source_of_funds": {
"BUSINESS": "Bisnis",
"SALARY": "Gaji",
"SAVINGS": "Tabungan",
"GIFT": "Hadiah"
},
"remittance_purposes": {
"FAMILY_SUPPORT": "Bantuan Keluarga",
"PERSONAL_TRANSFER": "Pengiriman Pribadi",
"EDUCATION": "Pendidikan",
"GIFT_AND_DONATION": "Hadiah Dan Donasi",
"SALARY_PAYMENT": "Pembayaran Gaji",
"MEDICAL_TREATMENT": "Perawatan Medis",
"MAINTENANCE_EXPENSES": "Beban Pemeliharaan",
"TRAVEL": "Perjalanan",
"SMALL_VALUE_REMITTANCE": "Remitansi Nilai Kecil",
"LIBERALIZED_REMITTANCE": "Remitansi Liberal",
"CONSTRUCTION_EXPENSES": "Beban Konstruksi",
"HOTEL_ACCOMMODATION": "Akomodasi Penginapan",
"ADVERTISING_EXPENSES": "Beban Iklan",
"ADVISORY_FEES": "Biaya Konsultan",
"BUSINESS_INSURANCE": "Asuransi Bisnis",
"INSURANCE_CLAIMS": "Klaim Asuransi",
"DELIVERY_FEES": "Biaya Pengiriman",
"EXPORTED_GOODS": "Pembayaran Barang Ekspor",
"SERVICE_CHARGES": "Biaya Layanan",
"LOAN_PAYMENT": "Pembayaran Pinjaman",
"OFFICE_EXPENSES": "Beban Kantor",
"PROPERTY_PURCHASE": "Pembelian Properti",
"PROPERTY_RENTAL": "Pembayaran Sewa Properti",
"ROYALTY_FEES": "Biaya Royalti Dan Hak Cipta",
"SHARES_INVESTMENT": "Investasi Saham",
"FUND_INVESTMENT": "Investasi Dana",
"TAX_PAYMENT": "Pembayaran Pajak",
"TRANSPORTATION_FEES": "Biaya Transportasi",
"UTILITY_BILLS": "Tagihan Utilitas",
"COMPUTER_SERVICES": "Layanan Komputer",
"REWARD_PAYMENT": "Pembayaran Hadiah",
"INFLUENCER_PAYMENT": "Pembayaran Influencer",
"OTHER_FEES": "Biaya Komitmen Dan Garansi"
},
"banks": {
"848": "Australia And New Zealand Banking Group Limited",
"859": "Bank Of China Limited",
"865": "Bank Of Tokyo-mitsubishi Ufj, Ltd., The",
"868": "Bnp Paribas - Singapore Branch",
"884": "Cimb Bank Berhad",
"885": "Citibank Singapore Ltd",
"886": "Citibank,n.a.",
"901": "Dbs Bank Ltd.",
"904": "Deutsche Bank Ag",
"931": "Hl Bank, Singapore",
"2669": "Hsbc (corporate)",
"2668": "Hsbc (personal)",
"939": "Icici Bank Limited",
"942": "Industrial And Commercial Bank Of China",
"1665": "Malayan Banking Berhad",
"2666": "Malayan Singapore Limited",
"2667": "Mizuho Bank Limited",
"954": "Oversea-chinese Banking Corporation Limited",
"963": "Rhb Bank Berhad",
"2670": "Sing Investments & Finance Limited",
"980": "Standard Chartered Bank Limited",
"983": "Sumitomo Mitsui Banking Corporation",
"1007": "United Overseas Bank Limited"
},
"special_identifiers": [],
"regions": [],
"nationality_countries": []
}
Refer to this page for more information about the Get Form Data API Reference.
5. Perform International Transfer
After you finish check the exchange rates and completed the required form data, you can proceed to create an International Transfer transactions.
- C2C / C2B
- B2B / B2C
Request Details
| Environment | Method | URL |
|---|---|---|
| Test Mode | POST | https://bigflip.id/api/v2/international-disbursement |
| Live Mode | POST | https://bigflip.id/big_sandbox_api/v2/international-disbursement |
| Requirement | Description |
|---|---|
| API Secret Key | The api key that will be used to authenticate the request. For more details, refer to Retrieving API Access Keys. |
idempotency-key | Unique identifier for each request. Please see more detail on Idempotent Request section. |
id_number | Id number. |
id_expiration_date | ID expiration date using YYYY-MM-DD format. |
amount | Id number. |
source_country | Source country code using ISO 3166 (Alpha-3). Currently possible value is IDN. |
destination_country | Destination country code using ISO 3166 (Alpha-3). See supported Destination Countries. |
beneficiary_full_name | Full name of the beneficiary |
beneficiary_account_number | Account number of the beneficiary bank |
beneficiary_bank_id | ID of beneficiary bank |
beneficiary_msisdn | A number used to identify a phone number internationally |
beneficiary_nationality | Country code using ISO 3166 (Alpha-3) of beneficiary nationality |
beneficiary_province | Province or state of the beneficiary |
beneficiary_city | City of the beneficiary |
beneficiary_address | Address of the beneficiary |
beneficiary_relationship | Relationship of beneficiary |
beneficiary_source_of_funds | Source of funds |
beneficiary_remittance_purposes | Purpose of remittance |
beneficiary_iban | Identifier of individual account involved in the international transaction |
beneficiary_swift_bic_code | Identifier of specific bank during an international transaction |
beneficiary_sort_code | Digits of code which is used by British and Irish banks |
beneficiary_ifs_code | Indian financial system code |
beneficiary_bsb_number | Identifier of banks and branches across Australia |
beneficiary_branch_number | Identifier of banks and branches across Japan |
beneficiary_document_reference_number | Reference number of document related to the transaction |
beneficiary_registration_number | Registration number |
beneficiary_region | Required for destination country China code. |
sender_name | The name of the user of the Money Transfer Company that act as a sender |
sender_country | Country code of the sender’s residence. Available value can be retrieved from country list. |
sender_place_of_birth | City/country code of the sender’s place of birth. Use city code if the sender’s place of birth is in Indonesia, and country code if outside Indonesia |
sender_date_of_birth | Sender’s date of birth with YYYY-MM-DD format |
sender_address | Sender’s address |
sender_identity_type | Sender’s ID type. |
sender_identity_number | Sender’s ID number |
sender_job | Sender’s job. |
sender_email | Sender’s email. Only accept one email. |
sender_city | Sender’s city. |
sender_phone_number | Sender’s phone number. Start with country phone code. |
To perform a C2B transaction, simply set the transaction_type to C2B in the Create International Transfer Request.
Sample Request:
curl -X POST 'https://bigflip.id/big_sandbox_api/v2/international-disbursement' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json; charset=UTF-8' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'idempotency-key: Test523489832' \
-d 'amount=1000' \
-d 'source_country=IDN' \
-d 'destination_country=SGP' \
-d 'transaction_type=C2C' \
-d 'beneficiary_full_name=felicia' \
-d 'beneficiary_account_number=67462374939049' \
-d 'beneficiary_bank_id=859' \
-d 'beneficiary_nationality=SGP' \
-d 'beneficiary_province=Singapore' \
-d 'beneficiary_city=Singapore' \
-d 'beneficiary_address=Singapore' \
-d 'beneficiary_relationships=FRIEND' \
-d 'beneficiary_source_of_funds=SALARY' \
-d 'beneficiary_remittance_purposes=FAMILY_SUPPORT' \
-d 'sender_name=Lala' \
-d 'sender_country=100252' \
-d 'sender_place_of_birth=122' \
-d 'sender_date_of_birth=1996-07-09' \
-d 'sender_address=Jakarta%20' \
-d 'sender_identity_type=nat_id' \
-d 'sender_identity_number=4536748275648882' \
-d 'sender_job=private_employee' \
-d 'sender_email=test%40gmail.com' \
-d 'sender_city=Jakarta' \
-d 'sender_phone_number=6285463746357'
Sample Response:
{
"id": 261,
"user_id": 12950853,
"company_id": 45529,
"exchange_rate": 11886.6,
"fee": 85000,
"amount": 1188660,
"source_country": "SGP",
"destination_country": "IDN",
"beneficiary_amount": 100,
"beneficiary_currency_code": "SGD",
"status": "PENDING",
"timestamp": "(not set)",
"time_served": "(not set)",
"created_from": "API",
"receipt": "",
"transaction_type": "C2C",
"idempotency_key": "test656435989906",
"beneficiary": {
"full_name": "felicia bc",
"bank_account_number": "67462374939049",
"email": "",
"bank": "BANK OF CHINA LIMITED",
"msisdn": "",
"nationality": "",
"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": "",
"id_expiration_date": "",
"ach_code": ""
},
"sender": {
"name": "Lala",
"place_of_birth": 122,
"date_of_birth": "1996-07-09",
"address": "Jakarta ",
"identity_type": "nat_id",
"identity_number": "4536748275648882",
"country": 100252,
"job": "private_employee",
"email": "test@gmail.com",
"city": "Jakarta",
"phone_number": "+6285463746357"
},
"reason": ""
}
Refer to this page for more information about the International Transfer API Reference.
Request Details
| Environment | Method | URL |
|---|---|---|
| Test Mode | POST | https://bigflip.id/big_sandbox_api/v2/international-disbursement/create-with-attachment |
| Live Mode | POST | https://bigflip.id/api/v2/international-disbursement/create-with-attachment |
| Requirement | Description |
|---|---|
| API Secret Key | The api key that will be used to authenticate the request. For more details, refer to Retrieving API Access Keys. |
idempotency-key | Unique identifier for each request. Please see more detail on Idempotent Request section. |
destination_country | Destination country code using ISO 3166 (Alpha-3). See supported Destination Countries. |
source_country | Source country code using ISO 3166 (Alpha-3). Currently possible value is IDN. |
transaction_type | Transaction type information |
amount | Amount of money that wants to be disbursed to the beneficiary (in beneficiary currency). Maximum 2 decimal places, for Japan there can be no decimal. Must be within the minimum and maximum amount based on transaction currency. |
attachment_data | File of invoice for Malaysia B2B. Accepted extensions: txt, pdf, doc, docx, jpg, jpeg, png, bmp, rtf, xls, xlsx |
attachment_type | Currently possible value is invoice for MYS |
beneficiary_account_number | Account number of the beneficiary bank |
beneficiary_ach_code | Ach code of the beneficiary |
beneficiary_address | Address of the beneficiary |
beneficiary_bank_id | ID of beneficiary bank |
beneficiary_bank_name | Name of beneficiary bank. Can be used for destination countries AUS and GBR |
beneficiary_branch_number | Identifier of banks and branches across Japan |
beneficiary_bsb_number | Identifier of banks and branches across Australia |
beneficiary_city | City of the beneficiary |
beneficiary_document_reference_number | Reference number of document related to the transaction |
beneficiary_email | Email of beneficiary |
beneficiary_full_name | Full name of the beneficiary |
beneficiary_iban | Identifier of individual account involved in the international transaction |
beneficiary_id_expiration_date | ID expiration date using YYYY-MM-DD format |
beneficiary_ifs_code | Indian financial system code |
beneficiary_id_number | ID Number |
beneficiary_msisdn | A number used to identify a phone number internationally |
beneficiary_nationality | Country code using ISO 3166 (Alpha-3) of beneficiary nationality |
beneficiary_postal_code | Postal code of the beneficiary |
beneficiary_province | Province or state of the beneficiary |
beneficiary_relationship | Relationship of beneficiary |
beneficiary_remittance_purposes | Purpose of remittance |
beneficiary_sort_code | Digits of code which is used by British and Irish banks |
beneficiary_source_of_funds | Source of funds |
To perform a B2C transaction, simply set the transaction_type to B2C in the Create International Transfer Request.
Sample Request:
curl -X POST 'https://bigflip.id/big_sandbox_api/v2/international-disbursement/create-with-attachment' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'Accept: application/json; charset=UTF-8' \
-H 'Content-Type: application/x-www-form-urlencoded' \
-H 'idempotency-key: test235432847' \
-d 'destination_country=MYS' \
-d 'source_country=IDN' \
-d 'transaction_type=B2B' \
-d 'amount=5000' \
-d 'attachment_type=invoice' \
-d 'beneficiary_account_number=0923489458809' \
-d 'beneficiary_ach_code=081284915950' \
-d 'beneficiary_address=HKG' \
-d 'beneficiary_bank_id=1133' \
-d 'beneficiary_bank_name=Affin%20Bank%20Berhad' \
-d 'beneficiary_branch_number=64584' \
-d 'attachment_data=@"/path-to-your-file' \
-d 'beneficiary_document_reference_number=6543874' \
-d 'beneficiary_full_name=jane' \
-d 'beneficiary_remittance_purposes=EDUCATION' \
Sample Response:
{
"id": 10,
"user_id": 12345,
"company_id": 123456,
"exchange_rate": 3341.96,
"fee": 45000,
"amount": 1004594,
"source_country": "IDN",
"destination_country": "MYS",
"beneficiary_amount": 300.6,
"beneficiary_currency_code": "MYR",
"status": "PENDING",
"timestamp": "(not set)",
"time_served": "(not set)",
"created_from": "API",
"receipt": "",
"transaction_type": "B2B",
"idempotency_key": "idem-1",
"beneficiary": {
"full_name": "Jane Doe",
"bank_account_number": "1187710200",
"email": null,
"bank": "AFFIN INVESTMENT BANK BERHAD",
"msisdn": "",
"nationality": "",
"country": "MYS",
"province": "",
"city": "",
"address": "",
"postal_code": null,
"relationship": "",
"source_of_funds": "",
"remittance_purpose": "TRAVEL",
"iban": null,
"swift_bic_code": null,
"sort_code": null,
"ifs_code": null,
"bsb_number": null,
"branch_number": null,
"document_reference_number": "doc_reference_123456",
"registration_number": null,
"id_number": "",
"id_expiration_date": "",
"ach_code": ""
},
"sender": null,
"reason": ""
}
Refer to this page for more information about the International Transfer B2B / B2C API Reference.
6. Handling International Transfer Callback
When there is transaction status update/change for International Transfer, Flip will send a request to your specified webhook URL in your Flip for Business dashboard. This type of asynchronous request is known as a Callback. Flip will send an HTTP POST request to the callback URL you configured. This callback is critical for confirming the success of the transaction and updating your system accordingly.
We will hit your URL using POST request with content type application/x-www-form-urlencoded and payload as described below:
| Attribute | Description |
|---|---|
| data | JSON object string with content exactly the same as the response of disbursement (see example below) |
| token | Validation token to ensure that the callback is coming from our server. You can get your token in your Flip for Business dashboard. |
Steps to Handle the Callback:
-
Receive the Callback:
- The callback will include various transaction details such as the transaction ID, user ID, amount transferred, status, bank code, account number,
recipient details, and other relevant information.
- DONE
- CANCELLED
data={
"id": 261,
"user_id": 12950853,
"company_id": 45529,
"exchange_rate": 11886.6,
"fee": 85000,
"amount": 1188660,
"source_country": "SGP",
"destination_country": "IDN",
"beneficiary_amount": 100,
"beneficiary_currency_code": "SGD",
"status": "DONE",
"timestamp": "2024-08-29 17:01:53",
"time_served": "2024-08-29 17:49:19",
"created_from": "API",
"receipt": "https://flip-receipt.oss-ap-southeast-5.aliyuncs.com/debit_receipt/",
"transaction_type": "C2C",
"idempotency_key": "test656435989906",
"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$UsffNb9Y69sU4r5PzWgPwu038C28EUTM8wxSe4COTImnKbtQMnjzKxxsddata={
"id": 262,
"user_id": 12950853,
"company_id": 45529,
"exchange_rate": 1987.35,
"fee": 80000,
"amount": 198735,
"source_country": "HKG",
"destination_country": "IDN",
"beneficiary_amount": 100,
"beneficiary_currency_code": "HKD",
"status": "CANCELLED",
"timestamp": "2024-08-29 17:34:25",
"time_served": "2024-08-29 17:50:20",
"created_from": "API",
"receipt": "",
"transaction_type": "C2B",
"idempotency_key": "test62959845",
"beneficiary": {
"full_name": "lala",
"bank_account_number": "67462374939049",
"email": "",
"bank": "Agricultural Bank of China Limited",
"msisdn": "8663749856",
"nationality": null,
"country": "HKG",
"province": "Hongkong",
"city": "Hongkong",
"address": "Hongkong",
"postal_code": "",
"relationship": "",
"source_of_funds": "SALARY",
"remittance_purpose": "OTHER_FEES",
"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
- The callback will include various transaction details such as the transaction ID, user ID, amount transferred, status, bank code, account number,
recipient details, and other relevant information.
-
Verify the International Transfer Status:
- The
statusfield will indicate the outcome of the transaction. For example:DONEsignifies that the transaction was completed successfully.
- Based on the status, you can determine whether to finalize the transaction on your end.
- Additionally, you can verify the callback status by using Flip's Get International Transfer API. You can retrieve the transaction details by the transaction id to get the latest status transaction.
- The
-
Process the Transaction:
- If the transaction was successful (status:
DONE), you can:- Confirm the transaction with your customer.
- Update your internal records to reflect the successful transfer.
- If the transaction status
CANCELLED, review the reason to understand the cause and take appropriate corrective actions.
- If the transaction was successful (status:
-
Respond to the Callback:
- It is mandatory to respond to the callback. If the webhook URL returns a non-200 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 between retries.
- You may choose to respond immediately to Flip and then process the callback data asynchronously to ensure timely acknowledgment.
- After your UAT has been reviewed and approved, we will provide detailed instructions for the Live Production integration via email.
Complete the User Acceptance Testing (UAT) documentation for International Transfer
To ensure that your integration with the International Transfer API meets all requirements and functions as expected, you need to complete the User Acceptance Testing (UAT) documentation. Follow the steps below to finalize your UAT process:
- Review the UAT Scenarios
- The scenarios for UAT can be found here. Review these scenarios thoroughly to ensure you understand the testing requirements.
- Complete the UAT Documentation
- Perform the UAT according to the provided scenarios.
- Document your test results, including request and response logs for each test scenario to provide a comprehensive view of the API interactions and responses.
- Submit UAT Results
- Once you have completed and documented your UAT, submit the documentation via email to: b2b-api-integration@flip.id with following format:
- Subject: Merchant UAT - International Transfer
- Body Contains:
- Flip Company ID
- Merchant name
- Ensure that your email includes all relevant UAT documentation, including the request and response logs, and any additional information required.
- Once you have completed and documented your UAT, submit the documentation via email to: b2b-api-integration@flip.id with following format:
- Review Process
- We will review your UAT submission within max 2x24 working hours. During this time, our team will assess your testing results and provide feedback if necessary.
- Integration in Live Production
- After your UAT has been reviewed and approved, we will send you detailed instructions for integrating the Money Transfer API into Live Production via email.
Important Notes:
-
Postman Collection: For easier integration and testing, download our Postman Collection here: Flip Postman Collection.
-
Idempotency Key: Implementing the idempotency key is mandatory for Money Transfer operations. Please refer to the documentation here: Idempotent Request Documentation.
-
IP Address: The IP address that will be used to send requests to Flip must be listed in the UAT document (link provided above).
-
Subscribe to Flip Status Page to receive real-time updates on maintenance and system status.
If you have any further questions, please reach out to B2B API Integration team. Thank you!