Payment Collection
Payment Collection
Use type: "payable" to collect payment as part of a document workflow.
Creating a payable document
curl -X POST https://zipzign.com/api/documents \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "payable",
"title": "Retainer Invoice — April 2026",
"content": "<h1>Retainer Invoice</h1><p>Monthly retainer for consulting services. Due upon receipt.</p>",
"payment": {
"amount": 200000,
"currency": "usd",
"description": "Monthly consulting retainer — April 2026",
"payerName": "Acme Corp",
"payerEmail": "billing@acmecorp.com"
}
}'
The payment object
Field | Type | Required | Description |
|---|---|---|---|
| integer | Yes | Amount in smallest currency unit |
| string | Yes | ISO 4217 code (e.g., |
| string | Yes | Shown on Stripe checkout |
| string | Yes | Payer's full name |
| string | Yes | Payer's email for checkout link and receipt |
Amount in cents
The amount field is always in the smallest currency unit:
Value | Currency | Actual amount |
|---|---|---|
| | $10.00 |
| | $500.00 |
| | $2,000.00 |
| | £10.00 |
| | ¥1,000 (JPY has no subunit) |
The payer flow
- ZipZign emails the payer a hosted Stripe checkout link
- Payer pays via Stripe (cards, Apple Pay, Google Pay)
- ZipZign receives the Stripe webhook → updates document status
- Document status transitions:
awaiting_payment→paid→complete - Payer receives a Stripe payment receipt
- Your app receives a
document.paidwebhook
Supported currencies
ZipZign supports all currencies supported by Stripe. Common values: usd, eur, gbp, cad, aud.
Refunds
Refunds are processed through your Stripe dashboard. ZipZign does not expose a refund API — the document status does not change on refund.
Stripe Connect
To route payments to a connected Stripe account, see Stripe Integration.
Updated on: 16/04/2026
Thank you!