Apps
An app is the container for products, checkouts, API keys, and webhooks. Branding fields (logo_url, brand_color, checkout_style) control the hosted pay page.
Products
| Field | Values | Notes |
|---|---|---|
| product_type | subscription | one_time | What the checkout unlocks |
| pricing_model | fixed | dynamic | dynamic only for one_time |
| amount_etb | decimal or null | null when dynamic |
| interval | week | month | year | day | custom | subscriptions |
Bank accounts
Workspace receiving accounts are shared across apps. Customers transfer here; PayProof only verifies. Manage them under Bank accounts.
Checkout statuses
| Status | Meaning |
|---|---|
pending | pending |
partially_paid | Underpaid; customer can top up |
verified | verified |
failed | failed |
expired | expired |
canceled | canceled |
manual_review | Awaiting merchant approve/reject |
Failure codes
When verification fails, failure_code may be one of: expired, duplicate_ref, network_error, receipt_not_found, unsupported_bank, account_mismatch, tampering, time_window_exceeded, underpaid, overpaid, amount_mismatch, no_retries.