An invoice is a payment request that IteraPay uses to generate a unique blockchain deposit address for your customer. When you create an invoice, IteraPay assigns it a payment method (a specific cryptocurrency) and an amount in USD. Your customer sends crypto to the generated address, and IteraPay records the incoming transaction against that invoice. You choose the invoice type based on how many times you expect the invoice to be paid and what the funds are for.Documentation Index
Fetch the complete documentation index at: https://docs.iterapay.com/docs/llms.txt
Use this file to discover all available pages before exploring further.
Invoice types
IteraPay supports two invoice types. Each serves a different use case.- onetime
- reusable
A onetime invoice is intended for a single payment from a single customer. Once a payment is received, the invoice is considered fulfilled. Use this type for order payments, subscriptions renewals, or any scenario where you need one customer to pay one specific amount once.
- Generates a unique deposit address
- Tracks a single expected payment
- Ideal for e-commerce checkouts and point-of-sale flows
How a customer pays
When you create an invoice, IteraPay does not immediately generate a deposit address — addresses are provisioned on demand when a customer views their invoice. The payment flow works as follows:- You create an invoice via the API and receive an
invoiceID. - You share the invoice with your customer (typically by directing them to a payment page).
- Your customer (or your frontend) calls the public invoice endpoint to retrieve invoice details:
- To get the deposit address for a specific payment method, call:
- To retrieve all deposit addresses already provisioned for an invoice:
- Your customer sends the exact amount in crypto to the returned address.
- IteraPay detects the on-chain transaction and records it against the invoice.
The public invoice endpoints require no authentication. This allows your customer-facing frontend or payment page to call them directly without exposing your API credentials.
Invoice lifecycle and states
Every invoice moves through a series of states from creation to completion. ThecollectStates field tracks how the funds collected against an invoice have progressed through the sweep pipeline — from awaiting payment, through on-chain confirmation, to settled and available in your balance.
When listing invoices, you can filter by state, collectStates, and other fields to find exactly the invoices you need:
| Filter | Description |
|---|---|
type | Filter by invoice type: onetime, reusable, collect, withdraw |
state | Filter by invoice state |
tokens | Filter by payment method token IDs |
amount | Filter by amount range |
dateRange | Filter by creation date range |
collectStates | Filter by fund collection progress |
archived | Include or exclude archived invoices |
amlOk | Filter by AML check status |
search | Free-text search across invoice fields |
AML checks
IteraPay performs Anti-Money Laundering (AML) screening on incoming payments. When an invoice receives a payment, the transaction is checked against AML rules before funds are made available for collection. You can filter invoices byamlOk to find invoices where all payments have passed screening.
Creating and managing invoices
Create an invoice
To create an invoice,POST to the invoices endpoint with the invoice type, payment method ID, and USD amount:
invoiceID you use to retrieve addresses and track payments.
Archive an invoice
You can archive an invoice to remove it from your active list without deleting it. Archived invoices remain queryable:Delete an invoice
Deleting an invoice permanently removes it:Related reference
Create invoice
Create a new onetime, reusable, collect, or withdraw invoice.
List invoices
Retrieve and filter invoices for your merchant account.
Payment info
Get deposit addresses for customer payment.
Transactions
Understand how on-chain payments are recorded against invoices.