This walks through the full payment flow using curl. The base URL is http://localhost:8080 in development.

1. Get an API key

An admin creates your venture and returns an API key once:
curl -X POST http://localhost:8080/api/v1/ventures \
  -H 'Content-Type: application/json' \
  -d '{"name":"My Venture"}'
{ "id": "…", "name": "My Venture", "api_key": "sk_live_…", "api_key_prefix": "sk_live_…", "status": "ACTIVE" }
Store api_key securely — only its hash is kept and it cannot be retrieved again.

2. Add a webhook endpoint (optional)

curl -X POST http://localhost:8080/api/v1/webhook-endpoints \
  -H "X-API-Key: sk_live_…" -H 'Content-Type: application/json' \
  -d '{"url":"https://your-app.example/webhooks"}'
The response includes a per-endpoint secret (shown once) used to verify signatures. See Webhooks.
curl -X POST http://localhost:8080/api/v1/payments \
  -H "X-API-Key: sk_live_…" -H 'Content-Type: application/json' \
  -d '{
    "amount": "5000.00",
    "order_ref": "INV-1042",
    "success_url": "https://your-app.example/ok",
    "fail_url": "https://your-app.example/ko"
  }'
{ "id": "…", "satim_order_id": "…", "payment_url": "https://test.satim.dz/payment/…" }
Redirect the customer to payment_url.

4. Customer pays

On Satim’s hosted page, use a test card:
FieldValue
Card6280581110007215
Expiry01/2027
CVV2373
Password123456
After payment, Satim redirects the customer back to Fintech Core, which confirms the result, fires your webhook, and forwards the customer to your success_url or fail_url.

5. Check the status

curl -H "X-API-Key: sk_live_…" http://localhost:8080/api/v1/payments/PAYMENT_ID
A paid payment returns "status": "PAID". See Payments for refunds and the full status list.