<article class="sy-endpoint"><h3><code>GET /v1/connectors/stripe/charges</code></h3><p>List charges with both the raw minor unit amount and the converted decimal.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The connected Stripe account to read from.</td></tr><tr><td>status</td><td>string</td><td>no</td><td>One of succeeded, pending or failed. Omit for all three.</td></tr><tr><td>created_after</td><td>string</td><td>no</td><td>ISO 8601 timestamp. Charges created at or after this moment.</td></tr><tr><td>customer_email</td><td>string</td><td>no</td><td>Restrict to one customer, matched on the email on the customer object.</td></tr><tr><td>limit</td><td>integer</td><td>no</td><td>Results per page, 1 to 100. Defaults to 25.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_a3751f3e",
"connector": "stripe",
"status": "ok",
"data": [
{
"charge_id": "ch_3Q1v8kF2mNpLx0Ab",
"amount_minor": 4900,
"amount": "49.00",
"currency": "usd",
"status": "succeeded",
"customer_email": "lena@harbourline.example",
"created": "2026-09-07T06:12:44Z"
}
],
"next_cursor": null
}</code></pre></article><article class="sy-endpoint"><h3><code>POST /v1/connectors/stripe/customers</code></h3><p>Create a customer, or return the existing one when the email already exists.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The connected Stripe account to write to.</td></tr><tr><td>email</td><td>string</td><td>yes</td><td>The customer email. Used as the match key when on_conflict is return_existing.</td></tr><tr><td>name</td><td>string</td><td>no</td><td>Display name for the customer record.</td></tr><tr><td>metadata</td><td>object</td><td>no</td><td>Your own reference IDs. Writing the source record ID here makes reconciliation trivial later.</td></tr><tr><td>on_conflict</td><td>string</td><td>no</td><td>One of return_existing or create. Defaults to return_existing.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_b486204f",
"connector": "stripe",
"status": "ok",
"data": {
"customer_id": "cus_QpR7t2LmXv90Ka",
"action": "returned_existing",
"email": "lena@harbourline.example",
"metadata": { "hubspot_contact_id": "701842933" }
}
}</code></pre></article><article class="sy-endpoint"><h3><code>GET /v1/connectors/stripe/customers</code></h3><p>Find a customer by email so a later step updates instead of duplicating.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The connected Stripe account to search.</td></tr><tr><td>email</td><td>string</td><td>yes</td><td>Exact email match, compared after trimming and lowercasing.</td></tr><tr><td>include_subscriptions</td><td>boolean</td><td>no</td><td>Return the customer's active subscriptions alongside the record. Defaults to false.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_c5973156",
"connector": "stripe",
"status": "ok",
"data": [
{
"customer_id": "cus_QpR7t2LmXv90Ka",
"email": "lena@harbourline.example",
"created": "2026-04-18T09:02:31Z",
"delinquent": false,
"subscriptions": []
}
]
}</code></pre></article><article class="sy-endpoint"><h3><code>POST /v1/connectors/stripe/invoices</code></h3><p>Draw up an invoice with line items, left as a draft or finalised.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The connected Stripe account to write to.</td></tr><tr><td>customer_id</td><td>string</td><td>yes</td><td>The customer the invoice belongs to.</td></tr><tr><td>line_items</td><td>array</td><td>yes</td><td>Objects with description, amount_minor and quantity. Amounts are integers in minor units.</td></tr><tr><td>currency</td><td>string</td><td>yes</td><td>Three letter code such as usd. Zero decimal currencies are handled without a false division.</td></tr><tr><td>finalize</td><td>boolean</td><td>no</td><td>Finalise and send the invoice. Defaults to false, which leaves a draft for a person to check.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_d6a84267",
"connector": "stripe",
"status": "ok",
"data": {
"invoice_id": "in_1Q2xR8F2mNpLx0Cd",
"customer_id": "cus_QpR7t2LmXv90Ka",
"total_minor": 9800,
"total": "98.00",
"currency": "usd",
"state": "draft",
"hosted_invoice_url": null
}
}</code></pre></article><article class="sy-endpoint"><h3><code>GET /v1/connectors/stripe/events</code></h3><p>Read the payment events the connector received, for replay or reconciliation.</p><div class="sy-table-wrap"><table><thead><tr><th>Param</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td>connection_id</td><td>string</td><td>yes</td><td>The connected Stripe account whose events you want.</td></tr><tr><td>type</td><td>string</td><td>no</td><td>Filter to one type, such as payment.succeeded, payment.failed or refund.issued.</td></tr><tr><td>since</td><td>string</td><td>no</td><td>ISO 8601 timestamp. Events are retained for 30 days on paid plans.</td></tr><tr><td>limit</td><td>integer</td><td>no</td><td>Results per page, 1 to 200. Defaults to 50.</td></tr></tbody></table></div><pre><code>{
"run_id": "run_e7b95378",
"connector": "stripe",
"status": "ok",
"data": [
{
"event_id": "evt_9c14ba",
"type": "payment.failed",
"charge_id": "ch_3Q1v9nF2mNpLx0Zz",
"amount_minor": 4900,
"amount": "49.00",
"currency": "usd",
"decline_reason": "insufficient_funds",
"observed_at": "2026-09-07T06:41:52Z"
}
],
"next_cursor": null
}</code></pre></article>