Forex Transfer Check (Preview)
Previews a forex wallet-to-wallet transfer without executing it. Returns the exchange rate, converted amount, fees, and markup that would apply.
When to Use
- Show the customer a transfer preview before confirmation
- Calculate the exchange rate and fees for display
- Validate that the transfer is possible (sufficient balance, valid wallets)
Note
The rates returned are indicative and may change slightly when the actual transfer is executed, as forex rates fluctuate in real-time.
Authorization
bearerAuth tenantId JWT Bearer token from the Authentication API
In: header
Your unique tenant identifier assigned during onboarding
In: header
Header Parameters
Your unique tenant identifier
Request Body
application/json
Required. Card kit number
1 <= lengthRequired. Amount to transfer from source wallet
0 <= valueRequired. Source wallet currency name
1 <= lengthRequired. Target wallet currency name
1 <= lengthExchange rate type: IBR = Interbank Rate, CRD = Card Rate
Channel originating the transfer (e.g. MOBILE_APP, WEB)
Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/customer/v2/customers/forex/transfer-check" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "kitNo": "20006085", "amount": 25, "sourceWalletName": "USD", "targetWalletName": "SGD", "rateType": "IBR" }'{
"result": {
"txnId": "string",
"entityId": "string",
"kitNo": "string",
"txnOrigin": "WEB",
"source": {
"amount": "string",
"preBalance": "string",
"postBalance": "string",
"transactionType": "string",
"transactionStatus": "SUCCESS",
"externalTransactionId": "string",
"transactionCurrencyCode": "string",
"transactionCurrencyCodeName": "USD",
"exchangeRate": 0,
"crDr": "C"
},
"destination": {
"amount": "string",
"preBalance": "string",
"postBalance": "string",
"transactionType": "string",
"transactionStatus": "SUCCESS",
"externalTransactionId": "string",
"transactionCurrencyCode": "string",
"transactionCurrencyCodeName": "USD",
"exchangeRate": 0,
"crDr": "C"
},
"conversionInfo": {
"conversionRate": 1.319385,
"convertedAmount": 32.98,
"markUpAmount": 0,
"markUpServiceTax": 0,
"txnFees": 0,
"serviceTax": 0,
"grossConvertedAmount": 32.98
},
"markupInfo": {}
},
"pagination": {
"list": true,
"pageSize": 0,
"pageNo": 0,
"totalPages": 0,
"totalElements": 0
}
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Bad Request",
"status": 400,
"detail": "Unable to convert http message",
"message": "error.http.400"
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Invalid Tenant Access",
"status": 409,
"detail": "Invalid Tenant Access",
"message": "error.business",
"businessCode": "M2PPP_011"
}Forex Wallet-to-Wallet Transfer POST
Transfers funds between two forex wallets on the same card. For example, converting USD to SGD or EUR to GBP. ### How It Works 1. Specify source and target wallet names 2. Amount is debited from the source wallet 3. Converted amount is credited to the target wallet 4. Exchange rate is applied based on the current interbank rate (IBR) ### Rate Types | Type | Description | |------|-------------| | `IBR` | Interbank Rate — standard market rate | | `CRD` | Card Rate — rate configured for the product | ### Response Structure Returns a detailed breakdown: - **source**: Debit details with pre/post balance - **destination**: Credit details with pre/post balance - **conversionInfo**: Exchange rate, markup, fees, gross amount
Fetch Offline Transactions POST
Retrieves offline transactions for a cardholder. Offline transactions are those processed in offline mode (e.g., POS terminals without real-time connectivity). ### Use Cases - Reconciliation of offline POS transactions - Identifying delayed settlement transactions - Monitoring offline transaction patterns
