Skip to Content

Authorize invoice with PIN

POST /api/v3/projects/{projectId}/invoices/{invoiceId}/authorize

Authorizes a created invoice using a PIN code (delivered to the customer via SMS).

The sandbox sends no SMS — the correct PIN is a fixed 1234. Other values return 422 INVOICE_NOT_AUTHORIZED with the number of attempts left; after three failed attempts the invoice returns 422 INVOICE_AUTH_ATTEMPTS_EXCEEDED and stops accepting authorization altogether, the correct PIN included. The correct PIN moves the invoice to active and raises authorization.is_authorized; the scheduled billing outcome still applies as usual.

v4 signature payload: {invoice_id}{pin_code}{client_ip}

Request parameters

FieldTypeRequiredDescription
projectIdinteger (int32)yes
invoiceIdstring (uuid)yes

Request body

FieldTypeRequiredDescription
client_ipstring—
pin_codestring—PIN code entered by the customer
additional_parametersobject—Arbitrary invoice parameters stored with the invoice, the JSON counterpart of the XML <AdditionalParameters>/<Parameter name= value=/> block. Parameter names are case-insensitive and must be unique. On cancel/refund/authorize the given values are merged into the ones already stored: names that match are overwritten, the rest are kept.
Request example
{ "pin_code": "1234" }
Response example
{ "success": true, "data": { "invoice_id": "0d0f3c58-9b1e-4a77-9a0c-000000000001", "status": "Authorize" } }

Response codes

CodeDescription
200Invoice authorized
400Validation or business request error
401Authentication failed (missing/invalid signature or timestamp)
403Project access denied or IP not whitelisted
404Invoice not found
422Business validation error
500Unexpected platform error
503Service temporarily unavailable