BillKit/Docs Console
Checkout

Create one-shot payment

Charge a customer once, with no subscription and no stored mandate.

POST/v1/checkout/one_shot
Operation create_one_shot · Scope checkout_sessions:write · Spec snapshot 2026-09-13

Parameters

ParameterDescription
amount_centsintegerrequiredNo description in the spec.
currencystringrequiredAt most 3 characters.
customer_idstringrequiredAt most 64 characters.
methodenumrequiredOne of creditcard, directdebit, ideal, bancontact, eps, applepay.
success_urlstring (uri)requiredMust be an absolute URL. At most 2083 characters.
cancel_urlstring (uri) | nulloptionalMust be an absolute URL. At most 2083 characters.
descriptionstring | nulloptionalAt most 255 characters.
metadataobject | nulloptionalAt most 50 keys.
refund_window_daysinteger | nulloptionalBetween 0 and 365.
tax_behaviorenum | nulloptionalOne of inclusive, exclusive.

Returns

Returns an OneShotPaymentResponse object.

Errors

Status Cause
401 Missing or invalid API key.
403 Key is missing the checkout_sessions:write scope.
422 Validation Error
429 Rate limited. Back off and retry.
Request · curl
curl -X POST https://api.billkit.eu/v1/checkout/one_shot \
  -H "Authorization: Bearer $BILLKIT_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount_cents":1900,"currency":"EUR","customer_id":"cus_9XKp2vQ1","method":"creditcard","success_url":"https://acme.example/welcome"}'
Request body · every field
{
  "amount_cents": 1900,
  "cancel_url": "https://acme.example/welcome",
  "currency": "EUR",
  "customer_id": "cus_9XKp2vQ1",
  "description": "string",
  "metadata": {
    "key": "value"
  },
  "method": "creditcard",
  "refund_window_days": 0,
  "success_url": "https://acme.example/welcome",
  "tax_behavior": "inclusive"
}
Response · 200 OK
{
  "amount_cents": 1900,
  "amount_disputed_cents": 1900,
  "amount_refundable_cents": 1900,
  "amount_refunded_cents": 1900,
  "cancel_url": "https://acme.example/welcome",
  "created": 1789392000,
  "currency": "EUR",
  "customer_id": "cus_9XKp2vQ1",
  "description": "string",
  "expires_at": 1789392000,
  "failure_reason": "string",
  "id": "osp_9XKp2vQ1",
  "livemode": false,
  "metadata": {
    "key": "value"
  },
  "method": "string",
  "net_cents": 1900,
  "object": "one_shot_payment",
  "paid_at": 1789392000,
  "redirect_url": "https://acme.example/welcome",
  "status": "string",
  "success_url": "https://acme.example/welcome",
  "tax_cents": 1900,
  "tax_reverse_charged": false
}