Reconciliation

Match every disbursement you sent from PayMongo against your books and your recipients' bank statements, so you can close your month with confidence.

Overview

The Disbursement Reconciliation report gives you a complete record of every transfer leaving your PayMongo Wallet over a date range you choose. Use it to:

  • Confirm that every disbursement you initiated landed in the right recipient account, with the right amount, on the right rail.
  • Match individual transfers in your accounting system to the corresponding line on your PayMongo Wallet activity.
  • Investigate failed, pending, or returned transfers and trace them back to a specific recipient and rail response.
  • Close your books each month with an auditable record of outbound funds movement.

The report is a CSV file that PayMongo emails to you on demand. It covers every transfer in the date range you specify: InstaPay, PESONet, wallet-to-wallet, and QR, regardless of whether it was created from the Dashboard or via the API.

Disbursement Reconciliation is intended for operational reconciliation. It is not a substitute for professional accounting or audit advice.

How disbursement reconciliation works

A complete reconciliation usually involves three sources of truth:

  1. Your internal records — payroll system, ERP, accounting ledger, or spreadsheet of payables.
  2. The PayMongo disbursement report — the export described on this page.
  3. The recipient's bank or e-wallet statement — the place where the money actually arrived.

For each disbursement, you compare these three views and confirm they agree on the recipient, the amount, and the timing. The PayMongo report is the bridge between your books on one side and the recipient's bank on the other: it carries the identifiers (reference_number, provider_reference_number) and the source/destination account fields you need to find the same transfer in both places.

A typical month-end close looks like this:

  1. Export the disbursement report for the month.
  2. Match each succeeded transfer to a line in your payables ledger using reference_number or your own description/purpose.
  3. Confirm with each recipient (or via their bank statements where you have access) that the transfer credited their account.
  4. Investigate any transfer that is failed, returned, or stuck in pending past its expected window.
  5. Total the succeeded rows and the fee column, and reconcile against the debits on your PayMongo Wallet activity.

Exporting your disbursement report

You export the report from the Wallet page in your PayMongo Dashboard.

  1. Log in to the PayMongo Dashboard and go to your Wallet.
  2. Click Export on the upper right of the Wallet page.
  3. Select the date range you want the report to cover. The range should match the period you are closing — for example, the previous calendar month for a monthly close, or a single day for a daily reconciliation.
  4. Confirm the export request.
  5. PayMongo prepares the CSV and emails it to your registered email address when it is ready.

The export includes every disbursement created within the selected date range, in any status (succeeded, pending, failed, returned). It is generated at the time you request it, so the data reflects the most recent status of every transfer at that moment.

Tip — reconcile on a fixed cadence. Daily exports keep volumes manageable and surface stuck or failed transfers while they are still recent. Most teams pair a daily export for operational checks with a full month-end export for accounting close.

What the report contains

Each row in the CSV represents one disbursement transaction. The columns fall into seven groups:

GroupWhat it tells you
IdentifiersUnique IDs to match this transfer to your books, the rail, and any batch it belonged to
Status and errorsFinal or current state of the transfer, plus any error code returned by the rail
AmountsPrincipal amount, fee, total debited from your Wallet, currency
SourceThe account funds left from — your PayMongo Wallet identity
DestinationThe account funds were sent to — the recipient
Rail and processingHow the transfer was routed (PESONet cycle, QR mode, debit/credit direction, purpose)
TimestampsWhen the transfer was created and last updated

Field reference

Every column you will see in the export, in the order it appears.

Identifiers

ColumnDescription
idThe unique PayMongo transfer ID, prefixed tr_. Use this as the canonical identifier when raising a support ticket or linking a record back to a specific disbursement.
merchant_idThe PayMongo merchant account that initiated the transfer. Useful for organizations operating multiple PayMongo accounts.
reference_numberA short, opaque reference that PayMongo generates for every transfer. Use this to find the corresponding entry in the recipient's bank statement — most Philippine banks display this on the credit advice.
provider_reference_numberThe reference number assigned by the underlying provider (e.g., the card network or rail). Use this when escalating to the rail or to the recipient's bank.
batch_transfer_idIf the transfer was part of a batch, this is the parent batch's ID, prefixed batch_tr_. Empty for single transfers.
Payout IDIf this disbursement is linked to a PayMongo payout, the payout ID it belongs to.

Status and errors

ColumnDescription
statusThe state of the transfer at the time of export. See Status meanings below.
livemodetrue for live transfers, false for transfers initiated in test mode. Always confirm you are reconciling against livemode = true when closing the books.
providerThe provider that processed the transfer (e.g., the rail or card network). Use this to filter by channel during reconciliation.
provider_error_codeThe error code returned by the provider when a transfer fails or is returned. Empty for successful transfers.
provider_error_messageA human-readable description of the error, when present. Use this together with the error tables in the Disbursements guide to determine the next action.

Amounts

All amounts are expressed in the smallest unit of the currency column (centavos for PHP), unless your export explicitly indicates otherwise.

ColumnDescription
amountThe principal amount sent to the recipient, before fees.
feeThe PayMongo fee charged for this transfer. For standard InstaPay/PESONet transfers this is PHP 10.00, except where the weekly free transfer applies.
total_amountThe total amount debited from your PayMongo Wallet for this transfer (amount + fee).
currencyThe currency of the transfer. For local disbursements this is always PHP.
Instant Settlement FeesAny additional fee applied for instant settlement, when applicable. Empty or 0.00 for standard transfers.

Source — where the funds came from

ColumnDescription
source_account_nameThe account name on the sending side (your PayMongo Wallet's registered name).
source_account_numberThe account number on the sending side.
source_bank_nameThe sending bank name.
source_bicThe sending bank's BIC / SWIFT code. For PayMongo Wallets this is PAEYPHM2XXX.

Destination — where the funds were sent

ColumnDescription
destination_account_nameThe recipient's account name as recorded at the time of the transfer.
destination_account_numberThe recipient's account number.
destination_bank_nameThe recipient's bank or e-wallet provider.
destination_bicThe recipient's BIC / SWIFT code.

Watch out for name mismatches. When matching against a recipient's bank statement, use destination_account_number and reference_number as the primary keys, not the account name. Banks sometimes truncate or reformat names on credit advices.

Rail and processing

ColumnDescription
purposeThe purpose code attached to the transfer (e.g., Purchase, Salary, Vendor Payment). Reflects what was sent in the create request.
descriptionThe free-text description supplied when the transfer was created. Use this to carry your internal reference (invoice number, payroll period, etc.) into the report.
callback_urlThe webhook URL the transfer's status updates were sent to, if any.
directiondebit for funds leaving your wallet, credit for funds arriving. A disbursement export is dominated by debit rows.
QR ModeThe QR Ph mode used (e.g., P2P, P2M, P2B) when the transfer was initiated via QR. Empty for non-QR transfers.

Timestamps

ColumnDescription
created_atISO 8601 timestamp when the transfer was created. This is when the funds were debited from your Wallet.
updated_atISO 8601 timestamp of the last status change. For succeeded transfers, this is when the rail confirmed credit; for failed or returned, this is when the failure or return was finalized.

Status meanings

The same statuses surface in your Dashboard, in webhooks, and in the report.

StatusWhat it meansReconciliation action
succeededFunds were credited to the recipient.Match against your books and the recipient's bank statement. Counts toward the total disbursed amount for the period.
pendingThe transfer is still in flight.Allow up to 20 minutes for InstaPay and up to one banking day for PESONet. If a transfer remains pending past its window, raise it with PayMongo support, citing the id and reference_number.
failedThe transfer did not complete and no funds left your wallet (or were reversed before the recipient was credited).Review provider_error_code / provider_error_message, fix the underlying issue (e.g., wrong account number, insufficient funds), and re-initiate.
returnedThe transfer was sent but the recipient bank or rail returned it after the fact (e.g., closed account discovered downstream).Confirm the credit was reversed in your Wallet, investigate the return reason, and decide whether to retry to a corrected destination.

A simple reconciliation workflow

The exact process depends on your accounting system, but most teams follow the same five steps each close period:

  1. Export the report for the date range you are closing.
  2. Filter by status. Split the file into succeeded, pending, failed, and returned. Each group needs a different action.
  3. Match the succeeded rows against your payables ledger using reference_number, your description field, or destination_account_number + amount. Flag any disbursement in the report that has no corresponding entry in your books, and any payable in your books that does not appear in the report.
  4. Verify with the recipient bank for high-value transfers or any item where the recipient has reported a missing payment. Use reference_number and provider_reference_number as the lookup keys on the bank side.
  5. Resolve the exceptions:
    • pending past its expected window → contact support with the id and reference_number.
    • failed → fix the cause (see the error tables in the Disbursements guide), re-initiate.
    • returned → confirm the wallet credit, then decide whether to retry.
    • Books-only entries with no PayMongo record → confirm the disbursement was actually initiated; if not, initiate it. If yes, check whether it falls outside the report's date range.

Sum the total_amount for succeeded rows and reconcile against the cumulative debit on your Wallet activity for the same period. The two should agree.

Tips for cleaner reconciliation

  • Carry your internal reference into the description field at the point of creation. Invoice numbers, payroll period codes, or contractor IDs flow straight into the report and make matching trivial.
  • Reconcile pending transfers separately. They will move to succeeded or failed later — don't include them in your closed totals until they reach a terminal status.
  • Keep the raw exports. Save each export with a date-stamped filename. If a recipient queries a payment months later, the original export is your fastest evidence.
  • Reconcile fees, not just principal. The fee and Instant Settlement Fees columns roll up into your operating expenses, not your payables. Pull them out as a separate line during close.
  • Use a daily export for ops, a monthly export for accounting. Daily exports catch stuck or failed transfers early; the monthly export is the audit-ready record.
  • Watch for name truncation. Bank credit advices often truncate destination_account_name. Match on destination_account_number and reference_number first, name second.

How PayMongo uses your data

The Disbursement Reconciliation report is generated from the disbursement and wallet activity already associated with your PayMongo account. The data is delivered to the registered email address of the user who requested the export. PayMongo does not retrieve or read your bank statements; matching against your bank or your recipients' banks is something you perform on your side.

The reconciliation report is provided "as-is." You are responsible for checking the accuracy and completeness of the data before relying on it for accounting, tax, or audit purposes.


Related reading

  • Disbursements — overview of how outbound transfers work, including statuses, webhooks, and the full error code reference.
  • Wallets — how your PayMongo Wallet balance and activity are structured.