Invoicing

Send crypto invoices your clients can pay in one click

Create an itemized invoice in the dashboard or over the API, email it to your client, and get paid in crypto on a hosted payment page. The invoice marks itself paid when the payment confirms on-chain.

Who this page is for

This page is for freelancers, agencies, and B2B service businesses that bill clients for completed work and want to accept crypto without chasing wallet addresses over email.

It is not a bookkeeping or accounting suite: PayKrypt owns the invoice, the payment page, and the paid status. Your accounting stack owns everything after that.

  • A freelancer can create an invoice with line items and a due date, send it, and share nothing but the hosted link.
  • An agency can automate invoicing from its own tooling with POST /v1/invoices and reconcile using invoice.paid.v1 webhooks.

The invoice lifecycle

An invoice starts as an editable draft with a per-merchant sequential number like INV-0001. Sending it transitions it to open, emails your client an itemized summary with a Pay button, and locks the line items.

When your client pays on the hosted page, the underlying payment intent confirms on-chain and the invoice is automatically marked paid, no manual reconciliation. Open invoices past their due date are flagged overdue and you are notified once.

POST /v1/invoices
Authorization: Bearer <YOUR_SECRET_KEY>
Idempotency-Key: <unique-key-per-invoice>
Content-Type: application/json

{
  "currency": "USD",
  "customerEmail": "[email protected]",
  "customerName": "Acme Inc.",
  "dueDate": "2026-08-01T00:00:00.000Z",
  "lineItems": [
    { "description": "Consulting - June", "quantity": 2, "unitPrice": "150.00" },
    { "description": "Hosting", "quantity": 1, "unitPrice": "19.99" }
  ]
}

What your client sees

The email links to a hosted invoice page showing your business name, the invoice number, itemized charges, the total, and the due date, plus a PDF download.

One click on Pay opens the same checkout used across PayKrypt: your client picks a chain and asset, sends the payment, and watches confirmations land. No PayKrypt account is required.

Totals are computed server-side

The invoice amount is always the sum of quantity × unit price over the line items, computed by the API. Clients of the API never send a total, so an invoice can never disagree with its own line items.

Draft invoices can be edited freely; the total recomputes on every change. Once sent, the invoice is immutable except for its status.

Operational details

Use one idempotency key per invoice creation, verify webhook signatures from the raw body, and treat invoice.paid.v1 as the signal to deliver or close out work.

Voiding is available for draft and open invoices, but is rejected while a payment is mid-confirmation to avoid marking a paying invoice void.

Settlement, fees, and pricing

Settlement happens on-chain as confirmations land, into your PayKrypt merchant balance alongside all other payments.

The public marketing fee model is 1% per confirmed payment, with no setup costs and no monthly charges.

FAQ

How does my client pay a crypto invoice?

The invoice email contains a hosted payment link. Your client opens it, clicks Pay, chooses a chain and asset, and sends the payment. No PayKrypt account needed.

How do I know when an invoice is paid?

The invoice is marked paid automatically when the payment confirms on-chain. You get a dashboard update, an invoice.paid.v1 webhook, and an optional email or in-app notification.

Can I edit an invoice after sending it?

No. Only draft invoices can be edited. Once sent, you can void it and issue a corrected invoice instead.

What happens when an invoice goes past its due date?

Nothing changes for the client, the invoice stays payable. You are notified once, the dashboard flags it overdue, and an invoice.overdue.v1 webhook fires so your tooling can follow up.

Is there a PDF version of the invoice?

Yes. Both you and your client can download a rendered PDF, from the dashboard and from the hosted payment page respectively.

Next steps

Start with the public Quickstart, then contact PayKrypt if you need help evaluating your integration path.