Create a Recurring Invoices
Copperx allows you to create recurring invoices for subscriptions, memberships, and services that require periodic payments.
๐ง How It Works
Create a Recurring Invoice: Provide the relevant customer, amount, and recurrence details.
Invoice Generation & Automation: Copperxโs system automatically generates new invoices at the defined interval.
Notifications & Webhooks: Stay updated with webhooks for successful payments, failures, or other events.
โ Step 1: Create a Customer
Before creating an invoice, youโll need to create a customer:
curl --request POST \
--url https://api.copperx.dev/api/v1/customers \
--header 'Authorization: Bearer {API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
"email": "[email protected]",
"name": "John Doe",
"metadata": {
"customerType": "SaaS"
}
}'
โ
Save the customerId
from the response.
โ Step 2: Create a Product
Next, create the product to be billed:
curl --request POST \
--url https://api.copperx.dev/api/v1/products \
--header 'Authorization: Bearer {API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Pro Plan",
"description": "Monthly subscription plan",
"isActive": true,
"unitLabel": "month",
"metadata": {
"category": "SaaS"
},
"defaultPriceData": {
"currency": "usdc",
"unitAmount": 50000000,
"interval": "month",
"type": "recurring"
}
}'
โ
Save the productId
from the response.
โ
Save the defaultPrice.id
as a priceId
from the response.
โ Step 3: Create a Recurring Invoice
Use the customerId
and productId
and priceId
in the invoice creation request:
curl --request POST \
--url https://api.copperx.dev/api/v1/invoices \
--header 'Authorization: Bearer {API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
"customerId": "{CUSTOMER_ID}",
"description": "Monthly recurring invoice for Pro Plan",
"dueDate": "2025-06-15T00:00:00Z",
"invoiceType": "recurring",
"collectionMethod": "charge_automatically",
"lineItems": {
"object": "list",
"priceId": "{}"
"data": [
{
"quantity": 1,
"price": {
"productId": "{PRODUCT_ID}",
"unitAmount": "50000000",
"currency": "usdc",
"type": "recurring",
"interval": "month"
}
}
]
}
}'
โ
Save the invoiceId
from the response.
โ Step 4: Finalize the Invoice
Finalize the invoice to make it active and ready for payment collection:
curl --request POST \
--url https://api.copperx.dev/api/v1/invoices/{INVOICE_ID}/finalize \
--header 'Authorization: Bearer {API_KEY}' \
--header 'Content-Type: application/json'
๐ ๏ธ Best Practices
โ
Validate Customer Details: Make sure the customer information is accurate before generating invoices.
โ
Use Webhooks: Listen for events like invoice.paid
, customer.subscription.started
, and invoice.marked_as_paid
to keep your system up to date.
โ
Secure API Calls: Always use HTTPS and a valid API key.
โ
Clear Terms: Clearly communicate the subscription and billing terms to customers.
Last updated