API
Create orders, collect payment references and receive verification results — everything the dashboard can do, from your own systems.
API keys
Security settings- Live key
- pk_live_8f2c…d41a
- Test key
- pk_test_2d7a…c9e1
- Base URL
- https://api.payverify.example.com/v1
Authenticate every request with Authorization: Bearer <key>. All traffic is JSON over HTTPS; requests without a key return 401.
Endpoints
Six endpoints cover the full manual-payment lifecycle.
| Method | Endpoint | What it does | Example |
|---|---|---|---|
| POST | /orders | Create an order and get a hosted checkout URL | View |
| GET | /orders/{id} | Retrieve an order with its verification state | View |
| POST | /orders/{id}/payment-reference | Submit the customer’s UTR / transaction reference | View |
| GET | /payments/{id}/status | Check a payment’s status and confidence score | View |
| GET | /transactions/{id} | Fetch a detected transaction with both parser results | View |
| POST | /payment-methods | Create a manual payment method shown at checkout | View |
Create order
POST/v1/orders
Creates an order and returns the hosted checkout URL the customer should open. The order stays in awaiting_payment until a reference is submitted.
Get order
GET/v1/orders/{id}
Returns the order with its payment reference, verification status and the matched transaction, if any.
Submit payment reference
POST/v1/orders/{id}/payment-reference
What the checkout form calls when the customer clicks “I have paid”. The order moves to waiting_verification and the engine starts watching for the confirmation.
Check payment status
GET/v1/payments/{id}/status
Poll this after the webhook fires, or use it as the source of truth on your confirmation screen.
Get transaction
GET/v1/transactions/{id}
Returns one detected confirmation message with both parser results — useful for reconciling manual review decisions.
Create payment method
POST/v1/payment-methods
Adds a manual method to the checkout. Account details, instructions and the matching parse rule are configured together.
Webhook events
Every status change above is also pushed to your callback endpoint, signed with your whsec_ secret. Six event types are delivered — treat these payloads as the authoritative feed.
- payment.detectedA confirmation message arrived from a source
- payment.pendingReference submitted, waiting for bank confirmation
- payment.verifiedAmount, reference and account all confirmed
- payment.review_requiredConfidence fell below the auto-approve band
- payment.failedRejected, unmatched or the order expired
- order.approvedThe order can be fulfilled