Skip to main content
POST
/
v1
/
payments
/
charge
Charge a Delegate
curl --request POST \
  --url https://api.example.com/v1/payments/charge
{
  "receiptId": "<string>",
  "status": "<string>",
  "amountCents": 123,
  "railUsed": "<string>",
  "txHash": "<string>",
  "stripePaymentIntentId": "<string>"
}

Headers

NameTypeRequiredDescription
X-Delegare-Merchant-IdstringYesYour unique merchant identifier.
X-Delegare-Api-KeystringYesYour secret API key.

Body Parameters

NameTypeRequiredDescription
delegateTokenstringYesThe user-authorized delegate token (dtok_...).
amountCentsnumberYesAmount in cents (positive integer).
currencystringYesusd, usdc, or usdt.
descriptionstringYesMax 500 characters. Shown on user statement.
idempotencyKeystringYesUnique key to prevent duplicate charges.
metadataobjectNoKey-value pairs for your own tracking.

Response

receiptId
string
Unique identifier for this transaction.
status
string
completed, pending, or failed.
amountCents
number
The final charged amount.
railUsed
string
fiat (Stripe) or crypto (Base).
txHash
string
On-chain transaction hash (if crypto was used).
stripePaymentIntentId
string
Stripe internal ID (if fiat was used).

Errors

StatusCodeDescription
400validation_errorMissing or malformed parameters.
402per_txAmount exceeds the delegate’s per-transaction limit.
402monthlyCharge would exceed the delegate’s monthly limit.
402merchant_limit_exceededAmount exceeds merchant-specific limits.
403merchant_inactiveYour merchant account is not active.
429rate_limit_exceededToo many requests.