Skip to Content
One-time paymentsCommon methods

Common methods

6.1 Authorize invoice (PIN)

Confirm the invoice with the PIN code from SMS. Used when no contract is involved and the invoice authorization.type = SMS_PIN.

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

Request body
{ "client_ip": "10.20.30.40", "pin_code": "987656" }
Response — 200 OK
{ "success": true, "data": { "invoice_id": "1624505c-0031-00cf-7d54-4cf1ce08cb30", "status": "Authorize" } }

6.2 Cancel invoice

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

Request body
{ "client_ip": "10.20.30.40" }
Response — 200 OK
{ "success": true, "data": { "invoice_id": "1624505c-0031-00cf-7d54-4cf1ce08cb30", "status": "Cancelled" } }

6.3 Get invoice

Get the status of a previously created invoice. Look up by invoice_id (in the path) or merchant_order_id (in the query).

GET /api/v3/projects/{projectId}/invoices/{invoiceId}

GET /api/v3/projects/{projectId}/invoices?merchant_order_id=order_123

Response — 200 OK
{ "success": true, "data": { "invoice_id": "1624505c-0031-00cf-7d54-4cf1ce08cb30", "status": "Processed", "payment_status": "PAID", "authorization": { "type": "BY_CONTRACT", "is_authorized": true }, "price": { "amount": "25.00", "currency": "RUB", "vat_included": true }, "merchant_order_id": "order_123", "created_at": "2025-03-29T20:00:10Z", "expires_at": "2025-03-29T22:00:10Z", "billing_channel": "CPA", "customer": { "type": "mobile_phone", "msisdn": "79600000000", "country": "RU", "network": { "id": 3, "name": "Beeline" }, "operator": { "id": 42, "name": "Beeline" } }, "transactions": [ { "transaction_id": "B4DA05E2-1D77-40C9-85AC-0BB3835DE8B5", "part_number": 1, "sequence_number": 1, "status": "FAILED", "result_code": 210, "result_description": "PAYMENT_CHANNEL_NOT_ENOUGH_MONEY", "paid_at": "2025-03-29T20:00:10Z", "price": { "amount": "25.00", "currency": "RUB", "vat_included": true }, "partner_profit": { "amount": "0.00", "currency": "RUB", "vat_included": true }, "total_paid": { "amount": "0.00", "currency": "RUB", "vat_included": true }, "total_remaining":{ "amount": "25.00", "currency": "RUB", "vat_included": true }, "billing_channel": "CPA", "service_number": "1234" } ] } }

GET /invoices/{invoiceId}

INVOICE_ID=1624505c-0031-00cf-7d54-4cf1ce08cb30 curl -sS "$BASE/api/v3/projects/$PROJECT_ID/invoices/$INVOICE_ID" \ -H "X-Login: $LOGIN" \ -H "X-Timestamp: $TS" \ -H "X-Signature-Version: 3" \ -H "X-Signature: $SIG" | jq '.data.payment_status'

6.4 Refund

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

Request body
{ "client_ip": "10.20.30.40" }
Response — 202 Accepted
{ "success": true, "data": { "invoice_id": "1624505c-0031-00cf-7d54-4cf1ce08cb30", "refund_status": "processing" } }

The refund result arrives asynchronously via the “Refund notification” webhook.