Carden documentation
Connect invoice data, prepare Stripe payment details, and track actual payment outcomes with Carden.
On this page
Start with your workflow
Carden connects authoritative business invoice data to your payment workflow. Your backend stays responsible for charging the customer. Carden prepares commercial transaction details and records the payment outcomes your backend reports.
Set up your workspace
Sign in, choose an environment, connect QuickBooks, and create a Carden key.
Integrate your payment backend
Prepare enrichment and report actual Stripe attempts without sharing Stripe credentials.
Read the API reference
Request bodies, responses, authentication, and failure handling.
How Carden fits
| Step | Responsibility | What it establishes |
|---|---|---|
| Invoice source | QuickBooks Online or your authoritative invoice system | The commercial facts: items, amounts, tax, and references. |
| Enrichment | Carden API and the server-side Node.js client | Validated fields for a supported Stripe PaymentIntent request. |
| Payment execution | Your backend and Stripe | The actual attempt, authorization, capture, or failure. |
| Outcome reporting | Your backend → Carden | A record of the status your integration observed. |
| Settlement evidence | Reconciliation against actual network costs | Whether qualification improved and the merchant realized savings. |
One merchant context at a time
Sign in with WorkOS AuthKit. Merchant users work in /dashboard, scoped to their organization. Authorized Carden operators use /admin to manage a selected client. A client is a merchant organization, not a shared pool of invoice or payment data.
An integration belongs to an organization and environment. API keys carry that context and an allowed set of scopes. A browser selection does not change the scope of a key already deployed to your server.
Build for accurate outcomes
- Use invoice facts that actually exist; preserve missing data as missing.
- Store money in integer minor units with a currency; keep decimal quantities as strings.
- Persist report events before delivery, retry reports independently of payments, and keep stable event identifiers.
- Keep ambiguous Stripe outcomes
unknownuntil your backend reconciles them. - Use settlement evidence and a defined baseline before calling any amount verified savings.