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

amount

integer

Yes

Amount in smallest currency unit

currency

string

Yes

ISO 4217 code (e.g., "usd")

description

string

Yes

Shown on Stripe checkout

payerName

string

Yes

Payer's full name

payerEmail

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

1000

usd

$10.00

50000

usd

$500.00

200000

usd

$2,000.00

1000

gbp

£10.00

1000

jpy

¥1,000 (JPY has no subunit)


The payer flow


  1. ZipZign emails the payer a hosted Stripe checkout link
  2. Payer pays via Stripe (cards, Apple Pay, Google Pay)
  3. ZipZign receives the Stripe webhook → updates document status
  4. Document status transitions: awaiting_paymentpaidcomplete
  5. Payer receives a Stripe payment receipt
  6. Your app receives a document.paid webhook


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

Was this article helpful?

Share your feedback

Cancel

Thank you!