Accounts Receivable & Payable
Manage invoices, bills, payments, and aging reports with support for both fiat and crypto.
Overview
Axiomatic provides full accounts receivable (AR) and accounts payable (AP) modules for managing the lifecycle of customer invoices and vendor bills. Both modules support traditional and crypto payment methods and automatically generate ledger events when payments are recorded.
Counterparties
Customers and vendors are managed as counterparties. Each counterparty record includes:
- Name and contact email
- Default currency for billing
- Wallet address and blockchain network (for crypto payments)
- Tax ID (for vendors, used in 1099 tracking)
Invoices (Accounts Receivable)
Creating an Invoice
An invoice includes one or more line items, each with a description, quantity, unit price, and optional revenue account mapping. You can set a due date, billing currency, and whether to accept crypto payments.
Invoice Lifecycle
Invoices progress through these statuses:
- Draft — being prepared, not yet sent
- Sent — delivered to the customer
- Partially Paid — some payment received
- Paid — fully settled
- Overdue — past the due date without full payment
- Void — cancelled
Recording Payments
When you record a payment against an invoice, Axiomatic:
- Updates the invoice's paid amount and status
- Creates a ledger event (
invoice_payment) - The posting engine generates the appropriate journal entry (e.g. DR Cash, CR Accounts Receivable)
Payment methods include ACH, wire, check, crypto, credit card, and other.
Crypto Payments
To accept crypto payments on an invoice:
- Set
acceptCryptototrue - Provide a receiving
walletAddressandchain - When payment arrives, record it with
method: "CRYPTO"and the transaction hash
Bills (Accounts Payable)
Entering a Bill
A bill records an obligation from a vendor. Each bill includes line items with descriptions, quantities, unit prices, and optional expense account mappings.
Bill Lifecycle
Bills follow a similar lifecycle with an additional approval step:
- Draft — being entered
- Received — bill received from vendor
- Approved — approved for payment
- Partially Paid — some payment made
- Paid — fully settled
- Overdue — past due date
- Void — cancelled
Paying a Bill
When you record a payment against a bill:
- The bill's paid amount and status update
- A ledger event (
bill_payment) is created - The posting engine generates a journal entry (e.g. DR Accounts Payable, CR Cash)
Crypto Payments
To pay a vendor in crypto:
- Set
payCryptototrueon the bill - Store the vendor's wallet address on their counterparty record or on the bill directly
- Record the payment with the outgoing transaction hash
Aging Reports
Both AR and AP provide aging reports that bucket outstanding balances by how long they've been overdue:
| Bucket | Description |
|---|---|
| Current | Not yet due |
| 1–30 days | 1 to 30 days past due |
| 31–60 days | 31 to 60 days past due |
| 61–90 days | 61 to 90 days past due |
| 90+ days | More than 90 days past due |
Overdue invoices and bills are automatically flagged when their due date passes.
Customer & Vendor Ledgers
View the complete transaction history for any customer or vendor. The ledger shows all invoices or bills and their associated payments, giving you a full picture of the counterparty relationship.
API Reference
Accounts Receivable
| Action | Method | Description |
|---|---|---|
| List invoices | GET /api/ar?entityId=...&view=invoices | All invoices with line items |
| List customers | GET /api/ar?entityId=...&view=customers | All customers |
| Aging report | GET /api/ar?entityId=...&view=aging | AR aging buckets |
| Customer ledger | GET /api/ar?entityId=...&view=ledger&counterpartyId=... | Transaction history |
| Create customer | POST /api/ar with action: "create_customer" | Add a new customer |
| Create invoice | POST /api/ar with action: "create_invoice" | Create invoice with line items |
| Send invoice | POST /api/ar with action: "send_invoice" | Mark as sent |
| Record payment | POST /api/ar with action: "record_payment" | Record a payment |
Accounts Payable
| Action | Method | Description |
|---|---|---|
| List bills | GET /api/ap?entityId=...&view=bills | All bills with line items |
| List vendors | GET /api/ap?entityId=...&view=vendors | All vendors |
| Aging report | GET /api/ap?entityId=...&view=aging | AP aging buckets |
| Vendor ledger | GET /api/ap?entityId=...&view=ledger&counterpartyId=... | Transaction history |
| Create vendor | POST /api/ap with action: "create_vendor" | Add a new vendor |
| Enter bill | POST /api/ap with action: "create_bill" | Enter bill with line items |
| Approve bill | POST /api/ap with action: "approve_bill" | Approve for payment |
| Record payment | POST /api/ap with action: "record_payment" | Record a payment |