Invoicing

Send invoices and collect payments across chains

Create invoices, accept partial payments, and automatically split revenue between sellers, platforms, and partners. Built for marketplaces, data sellers, and modern businesses.

Everything you need for invoicing

A complete invoicing system built for modern businesses and marketplaces

Create & Send Invoices

Generate invoices programmatically via API. Support draft and sent statuses, with automatic PDF generation.

Multi-Chain Payments

Accept payments on any blockchain network. Configure payment rails per network and asset combination.

Partial Payments

Enable instalment payments for large contracts. Track payment progress and remaining balances.

Revenue Splits

Automatically split payments between sellers, platforms, and partners. Configure splits at the profile level.

Escrow Mode

Use escrow wallets for secure transactions. Funds are held until conditions are met, then distributed.

Analytics & Tracking

Monitor invoice status, payment history, and revenue analytics. Track overdue invoices and collection rates.

How invoicing works

Four simple steps to start invoicing

01
Create a Profile

Set up an invoicing profile with payment rails, collection mode, and payout splits. Profiles are reusable templates.

02
Create & Send Invoice

Generate invoices via API. Specify customer, amount, currency, and due date. Invoices inherit payment config from profiles.

03
Collect Payments

Customers pay invoices using x402 protocol. Payments are tracked automatically, supporting partial payments if enabled.

04
Automatic Splits

Funds are automatically distributed according to configured splits. Escrow mode holds funds until conditions are met.

Accept partial payments for large contracts

Enable partial payment support on your invoicing profiles to accept instalment payments. Perfect for large data contracts, enterprise deals, or any scenario where customers need to pay in chunks.

Enable on Profile

Set supports_partial_payments: true when creating or updating a profile.

Track Progress

Monitor payment progress, remaining balance, and invoice status as payments come in.

partial-payments.ts
1import { OrvionClient } from "@orvion/sdk";
2
3const client = new OrvionClient({
4 apiKey: process.env.AGENTPAY_API_KEY!
5});
6
7// Create invoice with partial payments enabled
8const invoice = await client.invoices.create({
9 customer_name: "Acme Corp",
10 amount: 50000,
11 currency: "EUR",
12 profile_id: "profile_123", // Profile with supports_partial_payments: true
13 status: "sent"
14});
15
16// Customer can pay in instalments
17// First payment: 20,000 EUR
18await client.collections.recordPayment({
19 invoice_id: invoice.id,
20 amount: 20000,
21 currency: "EUR"
22});
23
24// Invoice status: "partially_paid"
25// Remaining balance: 30,000 EUR

Automatically split revenue between parties

Configure payout splits at the profile level. When invoices are paid, funds are automatically distributed according to your split configuration. Perfect for marketplaces, platforms, and multi-party transactions.

Direct Mode

Payments go directly to seller's wallet. Simple and fast.

Escrow Mode

Payments go to escrow wallet first, then split according to configuration.

Flexible Splits

Percentage or fixed amount splits. Multiple beneficiaries supported.

split-payouts.py
1from orvion import OrvionClient
2import os
3
4client = OrvionClient(api_key=os.environ["AGENTPAY_API_KEY"])
5
6# Create profile with escrow mode and splits
7profile = client.invoicing_profiles.create(
8 name="Marketplace – Base USDC – 10% fee",
9 network="base-mainnet",
10 asset="USDC",
11 collection_mode="escrow",
12 escrow_address="0xAGENTPAY_ESCROW",
13 supports_partial_payments=True
14)
15
16# Configure payout splits: 90% seller, 10% platform
17client.invoicing_profiles.set_splits(
18 profile_id=profile.id,
19 splits=[
20 {
21 "beneficiary_address": "0xSELLER_WALLET",
22 "label": "merchant",
23 "share_type": "percentage",
24 "share_value": 90
25 },
26 {
27 "beneficiary_address": "0xPLATFORM_WALLET",
28 "label": "platform_fee",
29 "share_type": "percentage",
30 "share_value": 10
31 }
32 ]
33)
34
35# All invoices using this profile will automatically split payments
Simple Invoicing API

Create invoices with one API call

Generate invoices programmatically. Specify customer, amount, and profile. We handle payment collection, tracking, and payouts.

Terminal
1curl -X POST "https://api.orvion.com/v1/invoices" \
2 -H "Authorization: Bearer $AGENTPAY_API_KEY" \
3 -H "Content-Type: application/json" \
4 -d '{
5 "customer_name": "Acme Corp",
6 "customer_email": "[email protected]",
7 "amount": "1000.00",
8 "currency": "USDC",
9 "profile_id": "profile_123",
10 "status": "sent",
11 "due_at": "2025-12-31T23:59:59Z"
12 }'

Common questions

Start invoicing today

Create your first invoicing profile, send invoices via API, and start collecting payments across any blockchain network.