Reconciliation & Settlement
ItPay's four-party model requires robust reconciliation processes to ensure all parties agree on transaction records. Since ItPay does not touch money, reconciliation is purely informational — verifying that what each party recorded matches reality.
The Three-Way Match
Every transaction involves three independent records:
- Channel — the payment provider's transaction log (source of truth for money movement)
- ItPay — the platform's routing and calculation records
- Merchant — the payee's own records of what was received
flowchart LR
A[Channel<br/>Transaction Log] --> D{Reconciliation<br/>Engine}
B[ItPay<br/>Routing Records] --> D
C[Merchant<br/>Receipt Records] --> D
D --> E["✅ Match<br/>No Action"]
D --> F["⚠️ Discrepancy<br/>Alert + Investigation"]
D --> G["❌ Missing<br/>Exception Workflow"]
Reconciliation Schedule
| Type | Frequency | Description |
|---|---|---|
| Auto-reconciliation | T+1 (daily) | Automated comparison of channel, ItPay, and merchant records |
| Callback verification | Real-time | Verify webhook callback payloads against on-chain records |
| Channel statement | Monthly | Download and reconcile official channel settlement statements |
| Merchant report | On-demand | Merchant can trigger reconciliation for any date range |
Settlement Flow
Settlement follows the channel-direct model — money flows from the channel directly to the merchant, bypassing ItPay entirely.
Channel-Supported Split (Recommended)
Some channels (WeChat Pay, Alipay) support automatic splits:
{
"transaction_id": "txn_01HXYZ...",
"total_amount": { "currency": "CNY", "value": 100.00 },
"splits": [
{
"account": "acc_merchant_01H...",
"amount": { "currency": "CNY", "value": 99.30 },
"type": "merchant_settlement"
},
{
"account": "acc_itpay_platform",
"amount": { "currency": "CNY", "value": 0.70 },
"type": "platform_fee"
}
],
"settlement_method": "channel_split",
"settlement_time": "T+1"
}
Manual Invoice (Fallback)
For channels that don't support splits, ItPay invoices the merchant monthly:
Channel Settlement Date: T+1
├── Merchant receives: 100.00 CNY (full amount)
└── ItPay invoices: 0.70 CNY (platform fee, due within 30 days)
Invoice Cycle: Monthly / Quarterly (configurable)
Payment Methods: Wire transfer, crypto (USDC)
Splitting Methods Compared
| Method | Channels | How It Works | ItPay Fee Collection |
|---|---|---|---|
| Channel Split | WeChat Pay, Alipay, PromptPay (selected banks) | Channel automatically splits funds at settlement | Collected automatically |
| Manual Invoice | All other channels | Merchant receives full payment, ItPay sends monthly invoice | Merchant pays separately |
| Crypto Direct | USDC/USDT | On-chain settlement, smart contract splits | Collected on-chain |
Discrepancy Resolution
When a discrepancy is detected, the reconciliation engine follows this escalation:
-
Level 1 — Automated Retry (within 1 hour)
- Re-fetch channel transaction via API
- Re-query merchant records
- If resolved → closed
-
Level 2 — Alert (within 24 hours)
- Notify merchant via email/webhook
- Notify ItPay operations team
- Mark transaction as
under_review
-
Level 3 — Manual Investigation (within 72 hours)
- ItPay ops reviews all three records
- Coordinates with channel provider if needed
- Resolution: adjust records, initiate refund, or escalate to dispute
Best Practices for Merchants
- Log all ItPay API responses (especially
payment_intent_idand amounts) - Store webhook callback payloads with raw headers for signature verification
- Implement idempotency — the same callback may be delivered multiple times
- Run your own daily reconciliation against ItPay's exported reports