Quickstart

Create your first PayProof checkout and verify a bank transfer.

AGENTS.md

1. Create an app and product

In the dashboard, create an app, then add a fixed or dynamic product under Pricing. Also add a bank account under Bank accounts.

2. Create an API key

Open the app → API keys tab. Keys are app-scoped. Use them only on your server with Authorization: Bearer pk_live_… on /api/v1/*.

3. Create a checkout

cURL
curl -X POST https://verifyitet.duckdns.org/api/v1/checkouts/ \
  -H "Authorization: Bearer pk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "app_id": 1,
    "product_id": 1,
    "customer_ref": "user_42",
    "success_url": "https://yoursite.com/thanks",
    "cancel_url": "https://yoursite.com/cart"
  }'

For dynamic one-time products, include amount_etb. For fixed products, omit it.

4. Share the pay page

Redirect the customer to your website host + pay_url (for example /pay/cs_…). They transfer the expected amount to a listed account and include the reference_code in the transfer remark.

5. Verify the receipt

On the hosted page the customer uploads the receipt. You can also verify from your server:

bash
curl -X POST https://verifyitet.duckdns.org/api/v1/checkouts/cs_.../verify/ \
  -H "Authorization: Bearer pk_live_..." \
  -F "images[]=@receipt.jpg"

6. Listen for the outcome

Prefer webhooks (guide). Events like checkout.verified or subscription.activated confirm success. Live updates also stream on wss://…/ws/gateway/checkouts/{public_id}/.