Skip to documentationDocumentation
On this page

invoice.created

Invoice created and ready for payment.

An invoice was created. This event does not indicate an accepted payment or balance credit. Hosted/API intents are created before address allocation and rate lock. Static-address invoices already have an address, selected payment pair, and rate snapshot.

When to use it#

Save the invoice/order relationship. The current producer sends schema version 2. Its amount_basis distinguishes requested_crypto from requested_fiat; fiat network is empty until a payment pair is selected. The event's requested amount describes the nomination at creation, while REST selected-payment fields can still be null.

Static deposits use this event too. Their external_id can be null; GET the invoice for static_address_id. Version 1 remains described by the contract for receivers that support existing payloads.

Schema version 1#

Fields are taken from the public OpenAPI contract. Required nullable fields must be present and may contain null.

  • id · string · Required

    Stable event UUID for merchant-side idempotency. · Format: uuid

  • event_seq · integer · Required

    Global event sequence. Gaps are possible; it does not establish delivery or processing order. · Format: int64

  • type · "invoice.created" · Required

    —

  • schema_version · 1 · Required

    —

  • environment · "live" | "test" · Required

    —

  • merchant_id · string · Required

    Format: uuid

  • subject_type · "invoice" · Required

    —

  • subject_id · string · Required

    Format: uuid

  • occurred_at · string · Required

    Canonical business occurrence timestamp. · Format: date-time

  • data · object · Required

    Unknown properties are rejected

  • data.invoice_id · string · Required

    Format: uuid

  • data.external_id · string | null · Required

    —

  • data.currency · string · Required

    —

  • data.network · string · Required

    —

  • data.environment · "live" | "test" · Required

    —

  • data.amount_requested · string · Required

    Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.amount_paid · string · Required

    Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.status · "pending" · Required

    —

Example — version 1#

json example
{
  "id": "00000000-0000-0000-0000-000000000001",
  "event_seq": 184203,
  "type": "invoice.created",
  "schema_version": 1,
  "environment": "live",
  "merchant_id": "00000000-0000-0000-0000-000000000002",
  "subject_type": "invoice",
  "subject_id": "00000000-0000-0000-0000-000000000003",
  "occurred_at": "2026-09-14T10:00:00Z",
  "data": {
    "invoice_id": "00000000-0000-0000-0000-000000000003",
    "external_id": null,
    "currency": "USDC",
    "network": "ethereum",
    "environment": "live",
    "amount_requested": "25.00",
    "amount_paid": "0",
    "status": "pending"
  }
}

Schema version 2#

Fields are taken from the public OpenAPI contract. Required nullable fields must be present and may contain null.

  • id · string · Required

    Stable event UUID for merchant-side idempotency. · Format: uuid

  • event_seq · integer · Required

    Global event sequence. Gaps are possible; it does not establish delivery or processing order. · Format: int64

  • type · "invoice.created" · Required

    —

  • schema_version · 2 · Required

    —

  • environment · "live" | "test" · Required

    —

  • merchant_id · string · Required

    Format: uuid

  • subject_type · "invoice" · Required

    —

  • subject_id · string · Required

    Format: uuid

  • occurred_at · string · Required

    Canonical business occurrence timestamp. · Format: date-time

  • data · object · Required

    Invoice nomination at creation; amount_paid is zero. Hosted/API intents precede checkout activation and rate lock. Static-address invoices already have an address, selected payment pair, and rate snapshot. · Unknown properties are rejected

  • data.invoice_id · string · Required

    Format: uuid

  • data.external_id · string | null · Required

    —

  • data.currency · string · Required

    —

  • data.network · string · Required

    Fixed crypto network, or an empty string for a fiat nomination.

  • data.environment · "live" | "test" · Required

    —

  • data.amount_requested · string · Required

    Format: decimal · Pattern: ^\d+(.\d+)?$

  • data.amount_paid · "0" · Required

    —

  • data.status · "pending" · Required

    —

  • data.amount_basis · "requested_crypto" | "requested_fiat" · Required

    —

Example — version 2#

json example
{
  "id": "00000000-0000-0000-0000-000000000001",
  "event_seq": 184203,
  "type": "invoice.created",
  "schema_version": 2,
  "environment": "test",
  "merchant_id": "00000000-0000-0000-0000-000000000002",
  "subject_type": "invoice",
  "subject_id": "00000000-0000-0000-0000-000000000003",
  "occurred_at": "2026-09-14T10:00:00Z",
  "data": {
    "invoice_id": "00000000-0000-0000-0000-000000000003",
    "external_id": null,
    "currency": "USD",
    "network": "",
    "environment": "test",
    "amount_requested": "25.00",
    "amount_paid": "0",
    "status": "pending",
    "amount_basis": "requested_fiat"
  }
}

See delivery and envelope, signature verification, and business processes.