Create a hosted authorization for a bill
post/payment/{service}/v1/tenants/{tenant_id}/payments
Requires an API key
service is stripe or simulator. One payment per bill across providers and keys. The tariff supplies the hold. return_surface selects where hosted checkout returns: the developer sandbox (default) or the driver charging page for the bill's station and connector, with URLs chosen by the API. Retry this request with the same key if the outcome is unknown.
Path parameters
- tenant_idintegerRequired
- servicestringRequired
Headers
- idempotency-keystringRequired
Request body
- bill_idstringRequiredPattern
^bill_[0-9a-f]{32}$ - return_surfaceenumWhere hosted checkout returns: the developer sandbox page, or the driver charging page for this bill's station and connector (server-selected URLs).One of
developer,driver· Default"developer" - return_referencestring | nullDriver surface only: your session identifier appended to the server-selected return path (/charging/<evse>/<reference>) so the driver page can resume this session. Not a URL.Pattern
^[A-Za-z0-9_-]{1,128}$
Returns · 201
- idstringRequired
- bill_idstringRequired
- tenant_idintegerRequired
- servicestringRequired
- statusenumRequiredOne of
preparing,pending,authorized,captured,canceled,refund_pending,refund_failed,refunded - hold_minorintegerRequired
- captured_minorintegerRequired
- refunded_minorintegerRequired
- currencystringDefault
"USD" - payment_modeenumRequiredlive only for a Stripe payment taken in live mode on a connected account, as the provider recorded it at authorization; test otherwise.One of
test,live - authorized_atstring (date-time) | nullWhen Stripe authorized the hold (the Charge's creation time); null before authorization and for the simulator.
- next_actionobject | nullRequired
POST /payment/{service}/v1/tenants/{tenant_id}/payments
curl --fail-with-body -X POST "https://api.ivoracharge.com/payment/simulator/v1/tenants/1042/payments" \
-H "Authorization: Bearer $IVORA_API_KEY" \
-H "Idempotency-Key: order-2026-09-30-0001" \
-H "Content-Type: application/json" \
-d '{
"bill_id": "bill_0123456789abcdef0123456789abcdef"
}'Response · 201
{
"id": "id_0123456789abcdef",
"bill_id": "bill_0123456789abcdef",
"tenant_id": 1042,
"service": "simulator",
"status": "preparing",
"hold_minor": 1250,
"captured_minor": 1250,
"refunded_minor": 1250,
"currency": "USD",
"payment_mode": "test",
"authorized_at": "2026-09-30T17:00:00Z",
"next_action": {}
}Try it is not available here yetRequests from this page are off until the production API at
https://api.ivoracharge.com is public. Use the code samples from your application server; Ivora grants production access. Keys are created in Developer tools.