Skip to main content
POST
Create invoice

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Headers

x-api-key
string | null

Body

application/json

Request to create an invoice.

Participant data (email, display_name, address) is snapshotted at creation time. Amount is computed as sum of items[].price * items[].quantity. invoice_number is auto-generated per (contractor, client) pair.

contractorEmail
string
required
contractorDisplayName
string
required
clientEmail
string
required
clientDisplayName
string
required
currency
enum<string>
default:USD

Supported invoice/contract currencies. G10 majors + AED/HKD, plus popular crypto tokens.

Available options:
USD,
EUR,
GBP,
JPY,
CHF,
CAD,
AUD,
NZD,
SEK,
NOK,
AED,
HKD,
BRL,
MXN,
USDC,
USDT,
DAI,
SOL,
BTC,
ETH,
NEAR,
BNB,
XRP,
ADA,
DOGE,
TRX,
GRAM,
AVAX,
MATIC,
DOT,
LTC,
LINK,
ARB,
OP,
SUI
comment
string | null
emailMessage
string | null
Maximum string length: 2000
invoicePrefix
string
default:INV

Prefix for auto-generated invoice_number, e.g. "INV" → "INV-0001".

Required string length: 1 - 16
Pattern: ^[A-Za-z0-9_-]+$
issuedDate
string<date> | null
dueDate
string<date> | null
items
Items · object[]
discount

Fixed discount in invoice currency. Subtracted from sum of items.

Required range: x >= 0
documentIds
string<uuid>[] | null
contractorAddress
UserAddress · object | null

Address schema for user.

Canonical field names: street_address, address_line_2, city, state, country, zip. Accepts legacy Align/IBAN field names (street_line_1, street_line_2, postal_code) for backward compatibility with existing JSONB data.

clientAddress
UserAddress · object | null

Address schema for user.

Canonical field names: street_address, address_line_2, city, state, country, zip. Accepts legacy Align/IBAN field names (street_line_1, street_line_2, postal_code) for backward compatibility with existing JSONB data.

banks
string<uuid>[] | null
onchain
boolean
default:false
iban
(IBANAccountDetails · object | USExternalAccountDetails · object | SwiftAccountDetails · object | PixAccountDetails · object | LocalRailAccountDetails · object | ProviderUsdAccountDetails · object)[] | null

Custom bank requisites in the same ibanData format as POST /user/contact. Each entry is snapshotted onto the invoice alongside any banks/onchain methods, so several payment options can be offered at once.

IBAN (SEPA) external account.

wallets
InvoiceWalletInput · object[] | null

Custom crypto wallet requisites (network + address + currency). Snapshotted onto the invoice alongside iban/banks/onchain.

Response

Successful Response

Invoice response.

Carries no download link: the PDF is rendered on request at GET /public/invoices/{id}/pdf. Add ?details=<index into paymentMethods> for the copy naming that payment method; without it the copy carries no payment details.

id
string<uuid>
required
amount
string
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
currency
enum<string>
required

Supported invoice/contract currencies. G10 majors + AED/HKD, plus popular crypto tokens.

Available options:
USD,
EUR,
GBP,
JPY,
CHF,
CAD,
AUD,
NZD,
SEK,
NOK,
AED,
HKD,
BRL,
MXN,
USDC,
USDT,
DAI,
SOL,
BTC,
ETH,
NEAR,
BNB,
XRP,
ADA,
DOGE,
TRX,
GRAM,
AVAX,
MATIC,
DOT,
LTC,
LINK,
ARB,
OP,
SUI
status
enum<string>
required

Invoice status.

Available options:
draft,
sent,
paid,
cancelled,
client_paid,
client_declined
createdAt
string<date-time>
required
updatedAt
string<date-time>
required
onchainTransactionId
string | null
transaction
InvoiceTransactionInfo · object | null

Minimal transaction info embedded in invoice response.

discount
string | null
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
comment
string | null
emailMessage
string | null
invoiceNumber
string | null
periodNumber
integer | null
issuedDate
string<date> | null
dueDate
string<date> | null
items
Items · object[]
paymentMethods
(IBANAccountDetails · object | USExternalAccountDetails · object | SwiftAccountDetails · object | PixAccountDetails · object | LocalRailAccountDetails · object | ProviderUsdAccountDetails · object | ContactWalletResponse · object | EmailAccountInput · object)[]

IBAN (SEPA) external account.

client
InvoiceParticipant · object | null

Minimal participant info for invoice response.

contractor
InvoiceParticipant · object | null

Minimal participant info for invoice response.

contract
InvoiceContractInfo · object | null

Minimal contract info embedded in invoice response.

documents
InvoiceDocumentInfo · object[]
paidAt
string<date-time> | null