Create invoice
Creates an invoice — a payment request of type INVOICE. An invoice is a bill you issue to a customer (line items, quantity, sales tax, issue/due dates, PO number, memo). When the customer decides to pay it, the API generates a checkout invoice for the amount.
The record is stored as a PaymentRequests row with Type = INVOICE; fields beyond the shared base are kept in the request’s JSON Data blob and returned via the presenter. The store is resolved from the API key (user.store_id); you do not pass a store id.
Authentication
- Merchant API key in
x-api-key (alias x-account-api-key).
- Requires scope
Merchant.payment_link.create.
- Optionally scope with
x-application-account-id (alias x-account-id) or the application_account_id / account_id query param.
Body (application/json)
Required (shared base): amount, currency, title, frecuency (ONE_TIME | MULTIPLE | RECURRING; frecuencyData JSON string required when RECURRING).
Invoice-specific (all optional): customerId (the billed customer), invoiceNumber, invoiceDate, dueDate, salesTax, quantity (min 1, when there is no itemized list), items[] ({ productId, itemName, quantity, price } — all four are required inside each item), repeat, poNumber, memo. appId optionally links a sale terminal (app).
Returns the created invoice (BillingInvoiceResponseDto).
Notas: Handler: billingInvoicesService.create. Type-agnostic operations (find, pay, activate, archive, complete, delete) use the shared /v1/payment-requests routes. Not to be confused with /v1/invoice (checkout invoices).