Fetch Failed Transactions
Retrieves all failed transactions for a cardholder. Useful for troubleshooting, reconciliation, and displaying declined transaction history.
Common Failure Reasons
- Insufficient balance
- Currency conversion deviation
- Transaction limit exceeded
- Card blocked or locked
- Downstream processor error
Authorization
bearerAuth tenantId JWT Bearer token from the Authentication API
In: header
Your unique tenant identifier assigned during onboarding
In: header
Query Parameters
Page number (0-indexed)
0Number of records per page
10Header Parameters
Your unique tenant identifier
Request Body
application/json
Required. Cardholder's entity identifier
1 <= lengthFilter by mobile number (optional)
Filter by card kit number (optional)
Start date (inclusive). Format: dd-mm-yyyy
End date (inclusive). Format: dd-mm-yyyy
Filter by specific wallet/account ID (optional)
Set to true to return only successful transactions
Set to true to include offline transactions
Response Body
application/json
application/json
application/json
curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/customer/v1/transactions/fetch/failed-transactions" \ -H "X-TENANT-ID: ACME_CORP" \ -H "Content-Type: application/json" \ -d '{ "entityId": "476843769320000541160925", "fromDate": "01-10-2025", "toDate": "31-10-2025" }'{
"result": [
{
"amount": "10.00",
"transactionStatus": "FAILURE",
"transactionType": "ECOM",
"time": "2025-10-22T11:36:43.654Z",
"merchantName": "Amazon SG",
"merchantLocation": "Singapore SG",
"description": "The computed base amount is deviating from network base amount",
"externalTransactionId": "020044426174700800188ECOM01_500896867835",
"retrievalReferenceNo": "500896867835",
"kitNo": "320000541",
"transactionCurrencyCode": "702",
"transactionCurrencyCodeName": "SGD",
"responseCode": "06"
}
],
"pagination": {
"list": true,
"pageSize": 10,
"pageNo": 0,
"totalPages": 1,
"totalElements": 1
}
}{
"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": "Customer does not exist",
"status": 409,
"detail": "Customer does not exists for id",
"message": "error.business",
"businessCode": "PPCUST_002"
}Fetch Transaction by RRN GET
Looks up a specific transaction using its **Retrieval Reference Number (RRN)**. The RRN is assigned by the card network and is commonly used in dispute resolution and reconciliation. ### When to Use - Cross-reference transactions with card network records - Dispute resolution — look up transaction by RRN - Bank reconciliation matching
Fetch All Forex Transactions POST
Retrieves transaction history specifically for forex cards. The response includes a **parent-child transaction structure** where: - **Parent transaction**: The original card-level transaction (e.g., POS purchase in SGD) - **Child transactions**: Wallet-level breakdowns showing which currency wallets were debited and the exchange rates applied ### When to Use - Display forex transaction history with currency conversion details - Show customers how multi-currency transactions were split across wallets - Reconciliation for forex card operations ### Response Fields Key fields in each transaction: - `transactionCurrencyCode` / `transactionCurrencyCodeName`: Currency of the original transaction - `baseCurrencyCode` / `baseCurrencyCodeName`: Base currency (typically USD) - `exchangeRate`, `markupRate`, `markupServiceTax`: Currency conversion details - `preBalance` / `postBalance`: Wallet balance before/after (in child transactions) - `forexWallet`: Which forex wallet was used
