Track the status of a domestic payment
Learn about the different status updates you will receive for domestic payments via webhooks. Understand how to interpret these events to track a payment's lifecycle from initiation to completion.
The user in this document pertains to both the individual and business user types.
Use Cases
- You want to track the progress of a domestic payment transaction.
- You want to display the progress and status changes of domestic payment transactions in your application.
- You want to notify users of real-time status updates of their domestic payment transactions.
Prerequisites
- The user profile risk assessment status must not be
risk_flagged. - The user profile must be in an
activestatus. - The user must have an
approvedKYC or KYB status - The user account or wallet must be in an
activestatus. - The user's virtual account must be in an
activestatus. - At least one domestic payment has been initiated from the user (sender) account.
API Workflow
1
Monitor for domestic payment status
The Virtual Account Advisory webhook category is available for partners who want to get timely feedback on virtual account events.
Listed below are the webhook events available for domestic payout transactions and the appropriate action required when they are received.
CONSUMER_ACCOUNT.BANK_TRANSFER_DEBIT.SUCCESS (Individual User) BUSINESS_ACCOUNT.BANK_TRANSFER_DEBIT.SUCCESS (Business User) | A notification is sent when a payment to a domestic bank account is successful and completed. | No action required |
CONSUMER_ACCOUNT.BANK_TRANSFER_CREDIT.FAILED (Individual User) BUSINESS_ACCOUNT.BANK_TRANSFER_CREDIT.FAILED (Business User) | Notification is sent when a payment to a domestic bank account encounters:
| No action required An appropriate reversal will be executed for the payment transaction. |
CONSUMER_ACCOUNT.BANK_TRANSFER_CREDIT_REVERSAL.SUCCESS (Individual User) BUSINESS_ACCOUNT.BANK_TRANSFER_CREDIT_REVERSAL.SUCCESS (Business User) | A notification is sent when a payment to a domestic bank account is cancelled by the source (MatchMove) bank. The amount debited from the source account will be reversed. | No action required. The user can retry the transfer to the beneficiary. |
CONSUMER_ACCOUNT.BANK_TRANSFER_CREDIT_REVERSAL.FAILED (Individual User) BUSINESS_ACCOUNT.BANK_TRANSFER_CREDIT_REVERSAL.FAILED (Business User) | A notification is sent when a payment to a domestic bank account is cancelled by the source (MatchMove) bank. The amount debited from the source account was attempted to be reversed, but the system encountered an error. | No action required. In the event of a failed reversal, MatchMove will automatically initiate subsequent attempts until the transaction is successfully processed. |
Go to the Leveraging Webhooks section to learn more about setting up the webhooks.
Sample Successful Domestic Payout webhook payload
{
"consumer":
{
"consumer_name": "CLIENT NAME",
"prefund_balance": "1349581.800000"
},
"debit_credit_indicator": "D",
"deducted_amount": "1.950000",
"fee_charged": "0.000000",
"payment_instrument":
{
"status": "active",
"transaction_instrument_id": "hashidofcard",
"virtual_account_number": "6377022712345678",
"wallet_number": "6377022712345678"
},
"time_stamp": "2023-07-27T14:27:45+08:00",
"total_amount": "1.950000",
"total_currency": "SGD",
"transaction":
{
"client_ref_id": "CLIENREF001",
"purpose_of_transfer": "OTHR",
"transaction_message": "Transfer to Bank account 12345678 success",
"transaction_ref": "DEBIT-generatedtransactionref",
"transaction_status": "success",
"transfer_out":
{
"destination_account":
{
"bank_account_number": "12345678",
"bank_code": "DBSSSGS0XXX",
"bank_holder_name": "BANK HOLDER NAME"
},
"source_account":
{
"bank_account_number": "6377022712345678",
"bank_code": "MAYPSGS0XXX",
"bank_holder_name": "MM HOLDER NAME"
}
}
},
"user":
{
"email": "mmuser@matchmove.com",
"kyc_status": "active",
"mobile": "12345678",
"mobile_country_code": "65",
"user_hash": "hashidofuser"
},
"webhook_event": "CONSUMER_ACCOUNT.BANK_TRANSFER_DEBIT.SUCCESS"
}Related Links
On this page
- Track the status of a domestic payment