invoice.created
An invoice was created.
cTpeWay sends this event as an HTTP POST to every webhook endpoint subscribed to it. Verify the signature before you trust the body: see Webhooks.
Payload
Section titled “Payload”| Field | Type | Description |
|---|---|---|
id |
string | Unique event id, evt_…. Use it to deduplicate deliveries. |
type |
string | Always invoice.created. |
api_version |
string | Always v1. |
created |
integer | Unix time in seconds. |
livemode |
boolean | false for events from the test environment. |
data |
object | |
data. |
object | |
data. |
string | |
data. |
integer | |
data. |
string | One of open, pending, underpaid, paid, expired, canceled, refunded. |
data. |
array of strings | Values: overpaid, late, underpaid_accepted, partially_refunded. |
data. |
string | One of fiat, crypto. |
data. optional |
object | |
data. |
string | |
data. |
string | A decimal number written as a string, with up to 8 decimal places. |
data. |
array of objects | |
data. |
string | |
data. |
string | |
data. |
string | |
data. |
string | |
data. optional |
string | |
data. |
integer | |
data. optional |
string | Set once the option is selected (fiat invoices). A quoted amount is rounded up to display_decimals, so the amount shown to the payer is exactly the amount that pays the invoice. A whole number written as a string of digits. |
data. optional |
integer | Present with amount_due: the decimals it is stated with. amount_due is a whole number of 10^(decimals − display_decimals) base units; equal to decimals when the amount is exact to the base unit (crypto invoices). |
data. optional |
string | Price of one unit of the asset in the invoice currency at lock time. A decimal number written as a string, with up to 8 decimal places. |
data. optional |
string (date-time) | Until when amount_due holds. Afterwards the payer takes a new quote; the invoice lives on. |
data. optional |
string | |
data. optional |
string | Solana tokens: the address’s associated token account, where the token is held. |
data. optional |
string (date-time) | |
data. |
string | Sum of confirmed payments to this option. A whole number written as a string of digits. |
data. |
string | Sum of detected, unconfirmed payments to this option. A whole number written as a string of digits. |
data. optional |
string | |
data. optional |
string | |
data. |
integer | |
data. optional |
string | |
data. optional |
string | The customer the merchant named when creating the invoice. |
data. optional |
string | |
data. optional |
map of string to string | |
data. |
string (date-time) | |
data. |
string (date-time) | |
data. |
string (date-time) | |
data. optional |
string (date-time) | |
data. optional |
string (date-time) | |
data. optional |
string (date-time) | |
data. optional |
string (date-time) | When the invoice became refunded. |
A field marked optional can be missing from a payload.
Example
Section titled “Example”{ "id": "string", "type": "invoice.created", "api_version": "v1", "created": 0, "livemode": true, "data": { "object": { "id": "string", "number": 0, "status": "open", "outcome_flags": [ "overpaid" ], "kind": "fiat", "price": { "currency": "string", "amount": "10.00" }, "options": [ { "id": "string", "network": "string", "asset": "string", "asset_id": "string", "contract": "string", "decimals": 0, "amount_due": "1000000", "display_decimals": 0, "rate": "10.00", "quote_expires_at": "2026-01-01T00:00:00.000Z", "address": "string", "token_account": "string", "selected_at": "2026-01-01T00:00:00.000Z", "amount_paid": "1000000", "amount_detected": "1000000" } ], "selected_option_id": "string", "paid_option_id": "string", "tolerance_bps": 0, "order_id": "string", "customer_email": "string", "description": "string", "metadata": {}, "expires_at": "2026-01-01T00:00:00.000Z", "pre_selection_expires_at": "2026-01-01T00:00:00.000Z", "created_at": "2026-01-01T00:00:00.000Z", "paid_at": "2026-01-01T00:00:00.000Z", "expired_at": "2026-01-01T00:00:00.000Z", "canceled_at": "2026-01-01T00:00:00.000Z", "refunded_at": "2026-01-01T00:00:00.000Z" } }}The values are placeholders generated from the schema. They show the shape, not real data.

