Integration guide
This guide covers how to manage value receipts programmatically and embed them in your application. For a conceptual overview of what value receipts are and how they work, see the overview.
Prerequisites
- API key ready
- Signals flowing and delivered value configured
- At least one customer with signal data
Creating and managing value receipts
Sync (create or update)
The sync endpoint is the primary way to create value receipts. It finds or creates a receipt by its natural key — the combination of customer and date range — then populates it with current delivered value data. If a receipt already exists for that key, it returns the existing one. If the receipt is sealed, it’s returned as-is without re-populating.
You only need a customer and a time period — no orders or products are required.
Python
Node.js
You can optionally scope a value receipt to a product or an order (but not both). This narrows the receipt to delivered value from that specific product or order rather than all activity for the customer.
Scoped to a product:
Python
Node.js
Scoped to an order:
Python
Node.js
List value receipts
List value receipts with pagination and optional filters.
Python
Node.js
Available filters: customerId, externalCustomerId, orderId, productId, archived.
Get by ID
Fetch a single value receipt including its publish state.
Python
Node.js
Refresh
Re-populate a draft value receipt with the latest signal and delivered value data. This is useful when new signals are still coming in and you want the receipt to reflect the most recent numbers. Sealed receipts cannot be refreshed.
Python
Node.js
Seal
Seal a value receipt to make it immutable. This transitions it from draft to posted status. Once sealed, a receipt cannot be refreshed or re-populated — it becomes a permanent snapshot.
Python
Node.js
Publish and unpublish
Publishing makes a value receipt accessible to anyone with the link. Unpublishing reverts it to private (JWT-gated) access.
Python
Node.js
Archive and unarchive
Archiving soft-deletes a value receipt — it’s hidden from list results by default but can be restored.