Integration guides
Advanced features
Open in Markdown

Reconciliation

Compare transactions, balance history, fees, and daily statements with your records.

Overview

Match Reservepay's records against your own: payments and payouts through the API, fees and totals through daily statements, and held funds through balance history. For backfills and month-end reporting, export CSV files.

Payments and payouts

Use filter-payments for ongoing payment reconciliation:

  • Status and timestamps: filter by status and created_at, authorized_at, or captured_at.
  • Payment details: filter by payment method, currency, amount, contact, or fraud finding.
  • Search: pass full-text terms when you do not have an exact identifier.
  • Dates: pass one day (YYYY-MM-DD), an ISO8601 datetime, a range (YYYY-MM-DD..YYYY-MM-DD), or a keyword such as today, yesterday, this_month, or last_month.
  • Amounts: pass an exact value, a range (1000..5000), or an open bound (1000.. or ..5000).
  • Pagination: request up to 100 records per page and follow next until it is null. See Calling the API.

Use filter-payouts for payouts. It supports status, created_at, paid_at, sent_at, method, currency, amount, bank code, and contact.

For cursor listings without filters, use list-payments or list-payouts.

Recovering missed updates

If your webhook endpoint was down, or you want a safety net for missed events, compare Reservepay's records with yours for the affected period:

  1. Call filter-payments and filter-payouts for the period and compare each status with your records.
  2. Check every payment and payout you still have open from before the period with find-payment or find-payout. A filter on created_at alone misses older payments that were captured, refunded, or disputed during the period.
  3. Check refunds with list-refunds-by-payment and disputes with list-disputes. Neither sends webhooks. See Disputes.

To see whether a specific event reached your endpoint, see Checking delivery history.

CSV exports

Each export can cover up to one month. A user can run one export at a time; another request returns RATE_LIMIT_EXCEEDED until the first finishes.

Exports require a signed-in user context. The download URL is returned only to the requesting user and expires one hour after it is issued. Use filtered API results for a background integration authenticated with a merchant API key.

Balance and holds

get-balance returns your available balance: the amount you can pay out right now, in currency. Pending debits, such as payouts in progress, are already subtracted.

To see money that isn't available yet, read balance-history. Each entry has a direction, a type, an amount, and a status of ON_HOLD, EFFECTIVE, or CANCELED. It also links to the payout, topup, dispute, invoice, or statement it came from.

  • Incoming funds on hold: Add up the ON_HOLD entries with direction set to CREDIT.
  • Pending debits: ON_HOLD entries with direction set to DEBIT. These are already subtracted from your available balance, so don't add them to the held total.

Results run from newest to oldest. Follow every page.

Fees

Payment and payout objects include a fees array in find, list, and filter responses. Fee amounts are in subunits.

Field Meaning
fee_id Unique fee identifier.
kind Fee type.
billing_code Billing classification.
unit_amount Fixed fee amount.
percentage_amount Percentage-based fee amount.
discount_applied Discount applied to the fee.
statement_id Statement that assigned the fee.
  • Timing: fees appear after the daily statement runs, usually on T+1 rather than at capture time.
  • Total: add unit_amount and percentage_amount; the fee object has no total field.
  • VAT: read VAT from the invoice or statement rather than the fee object.
  • CSV: payment exports include calculated fee and net columns.

Statements

Call list-statements with a month (YYYY-MM) to retrieve one statement per day. Statements are generated overnight for the previous day.

Each statement includes:

  • Payment, refund, dispute, and payout amounts and counts
  • Fees, net volume, and balance change
  • Invoice status
  • Download URLs for the statement CSV and PDF
  • An invoice PDF URL when an invoice has been issued
Integrate further

Dive deeper into these advanced integration topics to unlock Reservepay's full potential with our in-depth guides.

Refunds, voids, and reversals

Issue refunds, void transactions before they settle, and reverse authorizations when needed.

Read the guide
Disputes

Find disputed payments, submit evidence, and respond before the deadline.

Read the guide
Authorization and capture

Separate authorization from capture to hold funds without charging. Perfect for pre-orders or reservations

Read the guide
Working with Terminal

Build your own POS, or work with our app by sending commands or using deep links.

Read the guide
Customer intelligence

Build profiles by attaching customer data. Gain insights, reduce fraud risk, and create experiences that drive loyalty.

Read the guide
Sending funds

Send payouts to your primary bank account or to your contacts via bank account, mobile number or national ID.

Read the guide
Real-time notifications

Stay informed about payment events with real-time webhooks. Automate your order processing, and more...

Read the guide
Payment lifecycle

Check payment statuses, available actions, refunds, and disputes.

Read the guide
Reconciliation

Filter payments and payouts, export CSVs, read balance holds, and reconcile daily statements.

Read the guide
Payment failure codes

Look up what each Reservepay failure code means when a payment is declined.

Read the guide

No account yet?

Start integrating all these amazing features into your app or website by creating your own merchant account today. It's free to sign up and only takes a few minutes to get started.