In Sequence, you can listen to various events to trigger your own workflows. These are called webhooks.Sequence sends webhooks when something changes in your account - customers, invoices, billing schedules, credit notes, quotes. Point a webhook at your endpoint, and Sequence will POST the event data there whenever one of those changes occurs.For the full event catalog, payload envelope, signature format, and delivery behavior, see Webhook events.
The fastest way to start is webhook.site. It gives you a public URL and shows every request that lands. Copy your unique URL.If you want to receive webhooks on your machine, set up a local server and use a tunnel like ngrok to receive webhooks locally.
Create a customer or an invoice in the dashboard. Within a few seconds the request should appear at your endpoint. Confirm the payload’s notificationType matches the event you triggered.
Concatenate the timestamp and the raw request body with a . separator: TIMESTAMP.RAW_BODY. For example: 1779974397972.{"notificationType":"..."}
Compute HMAC-SHA-256 of that string using your webhook’s signing secret
Compare the result with s using a constant-time comparison
Use raw bytes, not re-serialized JSON. The signature is computed over the exact bytes Sequence sent. If you parse the body to a JSON object and re-stringify it before verification, whitespace and key ordering differences will produce a different hash and verification will always fail.
Save the following as verify-webhooks-server.ts. It runs an HTTP server on port 8080 that verifies signatures on requests to POST /webhook.Dependencies: npm install express @types/express tsx
Run with: npx tsx verify-webhooks-server.ts
Return 200 quickly. Acknowledge the request and do any non-trivial work asynchronously (via a queue or background worker). A slow handler blocks the delivery and risks retries
Handle out-of-order events and out-of-date payloads. You can use webhooks as a signal that something has changed, then re-read the resource from the Sequence API to get its current state
Be idempotent. The same event may arrive more than once if a previous delivery failed
Ignore unknown event types and fields. Sequence may add new event types or fields in the future. Accept and ignore types your handler doesn’t recognize rather than throwing
Almost always caused by verifying against re-serialized JSON instead of the raw request body. Confirm your framework gives you the exact bytes Sequence sent.A mismatch in the working example above prints lines like:
Your handler must return a 2xx response. Confirm the endpoint is publicly reachable and isn’t returning an error to Sequence. Any non-2xx response causes Sequence to retry. Failed deliveries are retried for up to 24 hours.
For the full event catalog, payload envelope, signature format, and delivery behavior, see Webhook events.
{"docsConfig":{"theme":"palm","$schema":"https://mintlify.com/docs.json","name":"Sequence","colors":{"primary":"#716FFF","light":"#716FFF","dark":"#716FFF"},"logo":{"light":"https://mintcdn.com/sequence/bptUiZLY1oEfBaTZ/logo/light.svg?fit=max\u0026auto=format\u0026n=bptUiZLY1oEfBaTZ\u0026q=85\u0026s=02adc18f83942b8bdc86ec2b67937e1a","dark":"https://mintcdn.com/sequence/bptUiZLY1oEfBaTZ/logo/dark.svg?fit=max\u0026auto=format\u0026n=bptUiZLY1oEfBaTZ\u0026q=85\u0026s=38182050e1a27d88e9d34b686c985f32"},"favicon":"https://mintcdn.com/sequence/mEkhIlLyJGyDgjJd/favicon.png?fit=max\u0026auto=format\u0026n=mEkhIlLyJGyDgjJd\u0026q=85\u0026s=aebbf4110c663663a51501b506edfcdc","api":{"mdx":{"server":["https://eu.sequencehq.com/api","https://sandbox.sequencehq.com/api"]}},"navbar":{"links":[{"href":"https://dashboard.sequencehq.com","label":"Sign in"}],"primary":{"type":"button","label":"Request Access","href":"https://access.sequencehq.com/"}},"footer":{"socials":{"twitter":"https://twitter.com/SequenceHQ_","github":"https://github.com/sequencehq","linkedin":"https://www.linkedin.com/company/sequence-hq"}},"integrations":{"koala":{"publicApiKey":"pk_c9f1d1603102eb7e1c3a4f6922a45f72991b"},"plausible":{"domain":"sequencehq.com"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Speak to an expert","icon":"message-check","href":"https://access.sequencehq.com/"},{"anchor":"Changelog","icon":"bolt","href":"https://www.sequencehq.com/changelog"},{"anchor":"Blog","icon":"rss","href":"https://www.sequencehq.com/blog"},{"anchor":"Principles","icon":"bookmark","href":"https://www.sequencehq.com/principles"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sequence","hasAudioNarration":false,"actualSubdomain":"sequence","customDomains":["docs.sequencehq.com"],"gitSource":{"type":"github","owner":"sequencehq","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae916ba1c28f41eb5e4678b","collectionId":"36ea3fe5-f03d-4761-a194-dab2f90a8c72","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae916ba1c28f41eb5e4678b"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae917eae6fd30e73c624cd7","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"API Reference","count":388},{"language":"default","tag":"Version 2024-07-30","count":188},{"language":"default","tag":"Latest Live API","count":188},{"language":"default","tag":"Invoices","count":161},{"language":"default","tag":"Guides","count":134},{"language":"default","tag":"Billing","count":65},{"language":"default","tag":"Connectors","count":44},{"language":"default","tag":"Customer","count":38},{"language":"default","tag":"Collections","count":36},{"language":"default","tag":"Usage","count":34}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"reference/webhooks","slug":"/reference/webhooks","pageMetadata":{"title":"Set up webhooks","description":"Learn how to set up webhooks in Sequence.","og-title":"Set up webhooks | Sequence Documentation","og-description":"Learn how to set up webhooks in Sequence.","href":"/reference/webhooks"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Learn how to set up webhooks in Sequence.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedImage,Tab,Tabs,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tab)_missingMdxReference(`Tab`,true);if(!Tabs)_missingMdxReference(`Tabs`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`In Sequence, you can listen to various events to trigger your own workflows. These are called webhooks.`}),`\n`,_jsx(_components.p,{children:`Sequence sends webhooks when something changes in your account - customers, invoices, billing schedules, credit notes, quotes. Point a webhook at your endpoint, and Sequence will POST the event data there whenever one of those changes occurs.`}),`\n`,_jsxs(_components.p,{children:[`For the full event catalog, payload envelope, signature format, and delivery behavior, see `,_jsx(_components.a,{href:`/reference/webhook-events`,children:`Webhook events`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`quickstart`,children:`Quickstart`}),`\n`,_jsx(_components.p,{children:`This section walks you through setting up an endpoint, configuring a webhook in Sequence, and confirming a test delivery.`}),`\n`,_jsx(Heading,{level:`3`,id:`1-spin-up-an-endpoint`,children:`1. Spin up an endpoint`}),`\n`,_jsxs(_components.p,{children:[`The fastest way to start is `,_jsx(_components.a,{href:`https://webhook.site`,children:`webhook.site`}),`. It gives you a public URL and shows every request that lands. Copy your unique URL.`]}),`\n`,_jsxs(_components.p,{children:[`If you want to receive webhooks on your machine, set up a local server and use a tunnel like `,_jsx(_components.a,{href:`https://ngrok.com/docs/agent/overview`,children:`ngrok`}),` to receive webhooks locally.`]}),`\n`,_jsx(Heading,{level:`3`,id:`2-create-a-webhook`,children:`2. Create a webhook`}),`\n`,_jsxs(Tabs,{children:[_jsxs(Tab,{title:`Dashboard`,id:`dashboard`,children:[_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-configure.png?fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=dda33dc2571b5f585b83f8b5909c0226`,alt:`Webhooks in the Sequence dashboard`,\"data-og-width\":`1677`,width:`1677`,\"data-og-height\":`980`,height:`980`,\"data-path\":`images/product/resources/webhook-configure.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-configure.png?w=280\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=8264012c24a06b627b4ce9d91b09eec6 280w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-configure.png?w=560\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=a261cc13f839aebd64b0732b3ff0db50 560w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-configure.png?w=840\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=1f1eb19fbe87d2e9ad8522abdb8d6215 840w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-configure.png?w=1100\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=34c1f795ebafef872264ddc7f14bee51 1100w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-configure.png?w=1650\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=f1b5220dd88047714034801264b353b5 1650w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-configure.png?w=2500\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=7ec4aaad7d1d74bdfd0e85a0bc514bbc 2500w`})}),_jsxs(_components.p,{children:[`Open `,_jsx(_components.strong,{children:`Settings → Webhooks`}),` and create a new webhook. Paste your endpoint URL, choose the events you want, and save.`]})]}),_jsxs(Tab,{title:`API`,id:`api`,children:[_jsx(CodeBlock,{filename:``,numberOfLines:`10`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`10`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --request`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --url`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://eu.sequencehq.com/api/notifications/policies`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Authorization: \u003cauthorization>'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --header`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` 'Content-Type: application/json'`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --data`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` '{`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"name\": \"Dev team integration webhooks\",`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"recipients\": [\"https://api.company.com/webhooks\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"notificationTypes\": [\"INVOICE_ISSUED\", \"CUSTOMER_CREATED\"],`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"channel\": \"WEBHOOK\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),_jsxs(_components.p,{children:[`Then go to `,_jsx(_components.strong,{children:`Webhooks → Show secret key`}),` and copy the secret key - you will need it for verification.`]})]})]}),`\n`,_jsx(Heading,{level:`3`,id:`3-trigger-a-test-event`,children:`3. Trigger a test event`}),`\n`,_jsxs(_components.p,{children:[`Create a customer or an invoice in the dashboard. Within a few seconds the request should appear at your endpoint. Confirm the payload’s `,_jsx(_components.code,{children:`notificationType`}),` matches the event you triggered.`]}),`\n`,_jsx(Heading,{level:`2`,id:`verify-the-signature`,children:`Verify the signature`}),`\n`,_jsxs(_components.p,{children:[`Every webhook arrives with a `,_jsx(_components.code,{children:`Sequence-Signature`}),` header containing a timestamp and HMAC signature:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Sequence-Signature: t=1748866120822,s=6be6887a470c20978427ff89941ebecb83b2804ceed66fd93b3afc00de2e9f11`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`To verify a delivery:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Concatenate the timestamp and the raw request body with a `,_jsx(_components.code,{children:`.`}),` separator: `,_jsx(_components.code,{children:`TIMESTAMP.RAW_BODY`}),`. For example: `,_jsx(_components.code,{children:`1779974397972.{\"notificationType\":\"...\"}`})]}),`\n`,_jsx(_components.li,{children:`Compute HMAC-SHA-256 of that string using your webhook’s signing secret`}),`\n`,_jsxs(_components.li,{children:[`Compare the result with `,_jsx(_components.code,{children:`s`}),` using a constant-time comparison`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Use raw bytes, not re-serialized JSON.`}),` The signature is computed over the exact bytes Sequence sent. If you parse the body to a JSON object and re-stringify it before verification, whitespace and key ordering differences will produce a different hash and verification will always fail.`]})}),`\n`,_jsx(Heading,{level:`3`,id:`full-working-example`,children:`Full working example`}),`\n`,_jsxs(_components.p,{children:[`Save the following as `,_jsx(_components.code,{children:`verify-webhooks-server.ts`}),`. It runs an HTTP server on port 8080 that verifies signatures on requests to `,_jsx(_components.code,{children:`POST /webhook`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Dependencies: `,_jsx(_components.code,{children:`npm install express @types/express tsx`}),`\nRun with: `,_jsx(_components.code,{children:`npx tsx verify-webhooks-server.ts`})]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`58`,language:`typescript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`typescript`,children:_jsxs(_components.code,{language:`typescript`,numberOfLines:`58`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`#!/usr/bin/env tsx`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` express`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` require`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"express\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` cryptoModule`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` require`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"crypto\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Your webhook secret (from webhooks settings in the Sequence dashboard)`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` WEBHOOK_SECRET`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"YOUR_WEBHOOK_SECRET\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` PORT`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:` 8080`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` app`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` express`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`();`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`function`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` verifyWebhookSignature`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`payloadBytes`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`signatureHeader`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`secret`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` boolean`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` payloadString`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` payloadBytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`toString`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"utf-8\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` parts`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signatureHeader`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`split`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\",\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` timestampPart`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` parts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`find`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`p`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`startsWith`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"t=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`));`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signaturePart`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` parts`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`find`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`((`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`p`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` p`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`startsWith`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"s=\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`));`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`timestampPart`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signaturePart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` timestamp`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` timestampPart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`substring`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signatureFromHeader`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` signaturePart`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`substring`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`2`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` dataToSign`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\" `\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`timestamp`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`.`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payloadString`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` expectedSignature`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` cryptoModule`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`createHmac`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sha256\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`secret`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`update`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`dataToSign`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"utf8\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` .`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`digest`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signatureBuffer`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signatureFromHeader`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` expectedBuffer`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` Buffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`from`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expectedSignature`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hex\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signatureBuffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !==`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` expectedBuffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`return`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` cryptoModule`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`timingSafeEqual`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signatureBuffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`expectedBuffer`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`// Ensure webhook handler receives the raw bytes via express.raw()`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`use`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/webhook\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`express`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`raw`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`({ `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`type:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"application/json\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }));`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`post`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/webhook\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, (`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`req`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` any`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#9CDCFE`},children:`res`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` any`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` payloadBytes`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`:`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` Buffer`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`body`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:` const`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:` signatureHeader`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` req`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`headers`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`[`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sequence-signature\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`] `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`as`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:` string`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`;`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:`!`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payloadBytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`?.`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#9CDCFE`},children:`length`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` ||`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` !`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signatureHeader`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`400`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`send`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Bad Request\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` if`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` (`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`verifyWebhookSignature`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`payloadBytes`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`signatureHeader`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`WEBHOOK_SECRET`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)) {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Webhook verified.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`200`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`send`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"OK\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` } `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:`else`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Verification failed.\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` return`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` res`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`403`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`).`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`send`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Verification failed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`app`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`listen`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`PORT`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0.0.0.0\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`, () `}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`=>`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` console`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`log`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"`Webhook server listening on http://0.0.0.0:\"}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:\"${\"}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4FC1FF`},children:`PORT`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#569CD6`},children:`}`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:\"/webhook`\"}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`);`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`});`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`verify-manually`,children:`Verify manually`}),`\n`,_jsx(_components.p,{children:`When you want to confirm an end-to-end setup without writing code, two tools together are enough:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Point your webhooks at `,_jsx(_components.a,{href:`https://webhook.site`,children:`webhook.site`}),` URL and trigger an event in Sequence`]}),`\n`,_jsxs(_components.li,{children:[`You should see the webhook event captured in webhook.site with the raw payload and the `,_jsx(_components.code,{children:`Sequence-Signature`}),` header`]}),`\n`,_jsxs(_components.li,{children:[`Open `,_jsx(_components.a,{href:`https://metatoolhub.com/tools/hmac-encrypt-decrypt`,children:`metatoolhub.com`}),`’s HMAC verification tool`]}),`\n`,_jsx(_components.li,{children:`Algorithm: select “HMAC-SHA-256”`}),`\n`,_jsxs(_components.li,{children:[`Message/Data: paste the timestamp value, then `,_jsx(_components.code,{children:`.`}),`, then the raw event payload`]}),`\n`,_jsx(_components.li,{children:`Secret Key: paste your webhook’s signing secret`}),`\n`,_jsxs(_components.li,{children:[`HMAC to Verify: paste the `,_jsx(_components.code,{children:`s`}),` value from the `,_jsx(_components.code,{children:`sequence-signature`}),` header`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`A “Valid HMAC” message confirms your secret and the payload are correct.`}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-received-locally.png?fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=cf5ae71bd399ced4a76988debc1f8924`,alt:`A Sequence webhook received by webhook.site with its signature verified in metatoolhub.com's HMAC tool`,\"data-og-width\":`4340`,width:`4340`,\"data-og-height\":`2808`,height:`2808`,\"data-path\":`images/product/resources/webhook-received-locally.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-received-locally.png?w=280\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=5a4ad14df8796081fee8bccba8d33320 280w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-received-locally.png?w=560\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=b82db4f6ce96fd2180ae71b6e773b75e 560w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-received-locally.png?w=840\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=67c8786afc68fd4a437dbd4f8cc883ec 840w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-received-locally.png?w=1100\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=d8b52333f2b3e949a478c9af9b73ad15 1100w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-received-locally.png?w=1650\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=02b355d9b4a26b58f75cac01ad269497 1650w, https://mintcdn.com/sequence/-SlMgdh2LP9GpWSY/images/product/resources/webhook-received-locally.png?w=2500\u0026fit=max\u0026auto=format\u0026n=-SlMgdh2LP9GpWSY\u0026q=85\u0026s=daadc798646b081fc81cded2413ff7ae 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`handle-webhooks-well`,children:`Handle webhooks well`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Return 200 quickly.`}),` Acknowledge the request and do any non-trivial work asynchronously (via a queue or background worker). A slow handler blocks the delivery and risks retries`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Handle out-of-order events and out-of-date payloads.`}),` You can use webhooks as a signal that something has changed, then re-read the resource from the Sequence API to get its current state`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Be idempotent.`}),` The same event may arrive more than once if a previous delivery failed`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Ignore unknown event types and fields.`}),` Sequence may add new event types or fields in the future. Accept and ignore types your handler doesn’t recognize rather than throwing`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`troubleshooting`,children:`Troubleshooting`}),`\n`,_jsx(Heading,{level:`3`,id:`signature-mismatch`,children:`Signature mismatch`}),`\n`,_jsx(_components.p,{children:`Almost always caused by verifying against re-serialized JSON instead of the raw request body. Confirm your framework gives you the exact bytes Sequence sent.`}),`\n`,_jsx(_components.p,{children:`A mismatch in the working example above prints lines like:`}),`\n`,_jsx(CodeBlock,{numberOfLines:`3`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`3`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Verification failed.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Details: Got='abc123...', Expected='def456...'`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`You can use an online HMAC verification tool like `,_jsx(_components.a,{href:`https://metatoolhub.com/tools/hmac-encrypt-decrypt`,children:`metatoolhub.com`}),` to verify the expected signature.`]}),`\n`,_jsx(Heading,{level:`3`,id:`webhook-not-received-or-repeatedly-retried`,children:`Webhook not received, or repeatedly retried`}),`\n`,_jsxs(_components.p,{children:[`Your handler must return a `,_jsx(_components.code,{children:`2xx`}),` response. Confirm the endpoint is publicly reachable and isn’t returning an error to Sequence. Any non-`,_jsx(_components.code,{children:`2xx`}),` response causes Sequence to retry. Failed deliveries are retried for up to `,_jsx(_components.strong,{children:`24 hours`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`next-step`,children:`Next step`}),`\n`,_jsxs(_components.p,{children:[`For the full event catalog, payload envelope, signature format, and delivery behavior, see `,_jsx(_components.a,{href:`/reference/webhook-events`,children:`Webhook events`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Set up webhooks","description":"Learn how to set up webhooks in Sequence.","og-title":"Set up webhooks | Sequence Documentation","og-description":"Learn how to set up webhooks in Sequence.","href":"/reference/webhooks"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Quickstart","slug":"quickstart","depth":2,"children":[{"title":"1. Spin up an endpoint","slug":"1-spin-up-an-endpoint","depth":3,"children":[]},{"title":"2. Create a webhook","slug":"2-create-a-webhook","depth":3,"children":[]},{"title":"3. Trigger a test event","slug":"3-trigger-a-test-event","depth":3,"children":[]}]},{"title":"Verify the signature","slug":"verify-the-signature","depth":2,"children":[{"title":"Full working example","slug":"full-working-example","depth":3,"children":[]},{"title":"Verify manually","slug":"verify-manually","depth":3,"children":[]}]},{"title":"Handle webhooks well","slug":"handle-webhooks-well","depth":2,"children":[]},{"title":"Troubleshooting","slug":"troubleshooting","depth":2,"children":[{"title":"Signature mismatch","slug":"signature-mismatch","depth":3,"children":[]},{"title":"Webhook not received, or repeatedly retried","slug":"webhook-not-received-or-repeatedly-retried","depth":3,"children":[]}]},{"title":"Next step","slug":"next-step","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"sequence","siteName":"Sequence","title":"Set up webhooks - Sequence","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-17T01:41:16.566Z","originalFileLocation":"reference/webhooks.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Learn how to set up webhooks in Sequence.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Sequence\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Set up webhooks - Sequence\">\u003cmeta data-mint-head property=\"og:description\" content=\"Learn how to set up webhooks in Sequence.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sequence\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sequencehq.com/reference/webhooks\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sequence.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Set+up+webhooks\u0026amp;description=Learn+how+to+set+up+webhooks+in+Sequence.\u0026amp;theme=9a5e862c56c084d213b04486\u0026amp;signature=df00d2cf498b3d903f06e5f8743eb5e461d1403781358955677b3f8a00c11968\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Set up webhooks - Sequence\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Learn how to set up webhooks in Sequence.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sequence.mintlify.app/_mintlify/api/og/v2?division=Webhooks\u0026amp;title=Set+up+webhooks\u0026amp;description=Learn+how+to+set+up+webhooks+in+Sequence.\u0026amp;theme=9a5e862c56c084d213b04486\u0026amp;signature=df00d2cf498b3d903f06e5f8743eb5e461d1403781358955677b3f8a00c11968\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/sequence/4AxtUIMpbcFOrkSv/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sequence\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#716FFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sequencehq.com/reference/webhooks\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/reference/webhooks.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sequencehq.com/#organization\",\"name\":\"Sequence\",\"url\":\"https://docs.sequencehq.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/sequence/bptUiZLY1oEfBaTZ/logo/light.svg?fit=max\u0026auto=format\u0026n=bptUiZLY1oEfBaTZ\u0026q=85\u0026s=02adc18f83942b8bdc86ec2b67937e1a\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sequencehq.com#website\",\"name\":\"Sequence\",\"url\":\"https://docs.sequencehq.com\",\"publisher\":{\"@id\":\"https://docs.sequencehq.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sequencehq.com/reference/webhooks#webpage\",\"url\":\"https://docs.sequencehq.com/reference/webhooks\",\"name\":\"Set up webhooks\",\"description\":\"Learn how to set up webhooks in Sequence.\",\"dateModified\":\"2026-09-17T01:41:16.566Z\",\"isPartOf\":{\"@id\":\"https://docs.sequencehq.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sequencehq.com/reference/webhooks#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sequencehq.com/reference/webhooks#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.sequencehq.com/reference/gettingStarted\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Set up webhooks\",\"item\":\"https://docs.sequencehq.com/reference/webhooks\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.sequencehq.com/reference/webhooks#article\",\"headline\":\"Set up webhooks\",\"name\":\"Set up webhooks\",\"description\":\"Learn how to set up webhooks in Sequence.\",\"url\":\"https://docs.sequencehq.com/reference/webhooks\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sequencehq.com/reference/webhooks#webpage\"},\"dateModified\":\"2026-09-17T01:41:16.566Z\",\"publisher\":{\"@id\":\"https://docs.sequencehq.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sequencehq.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sequence\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sequence","nav":{"global":{"anchors":[{"anchor":"Speak to an expert","icon":"message-check","href":"https://access.sequencehq.com/"},{"anchor":"Changelog","icon":"bolt","href":"https://www.sequencehq.com/changelog"},{"anchor":"Blog","icon":"rss","href":"https://www.sequencehq.com/blog"},{"anchor":"Principles","icon":"bookmark","href":"https://www.sequencehq.com/principles"}]},"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/getting-started/overview"}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Getting Started","href":"/reference/gettingStarted"},{"title":"Authentication","href":"/reference/authentication"},{"title":"Versioning","href":"/reference/versioning"},{"title":"Changes","description":"All backward-incompatible changes to the Sequence REST API","href":"/reference/changes"},{"group":"Webhooks","pages":[{"title":"Set up webhooks","href":"/reference/webhooks"},{"title":"Webhook events","description":"Reference for the events Sequence sends, the payload envelope, signature header, and delivery behavior.","href":"/reference/webhook-events"}]}]},{"group":"Latest Live API","pages":[{"group":"Account","pages":[{"group":"Accounts","pages":[{"openapi":"account.latest.product.live GET /sequence-accounts/{id}","title":"Get your account","href":"/reference/latest/account/get-your-account"},{"openapi":"account.latest.product.live PUT /sequence-accounts/{id}","title":"Update Account","href":"/reference/latest/account/update-account"},{"openapi":"account.latest.product.live GET /sequence-accounts","title":"List your accounts","href":"/reference/latest/account/list-your-accounts"}]},{"group":"Users","pages":[{"openapi":"account.latest.product.live GET /users","title":"List all Users","href":"/reference/latest/account/list-all-users"},{"openapi":"account.latest.product.live GET /users/{id}","title":"Get a user","href":"/reference/latest/account/get-a-user"},{"openapi":"account.latest.product.live DELETE /users/{id}","title":"Delete User","href":"/reference/latest/account/delete-user"}]}]},{"group":"Activity Stream","pages":[{"group":"Activities","pages":[{"openapi":"activity-stream.latest.product.live GET /activity-logs","title":"List all Activity Logs","href":"/reference/latest/activity-stream/list-all-activity-logs"},{"openapi":"activity-stream.latest.product.live GET /activity-logs/{id}","title":"Get an Activity Log by ID","href":"/reference/latest/activity-stream/get-an-activity-log-by-id"}]}]},{"group":"Billing","pages":[{"group":"Discounts","pages":[{"openapi":"billing.latest.product.live GET /discounts/{id}","title":"Get a discount by ID","href":"/reference/latest/billing/get-a-discount-by-id"},{"openapi":"billing.latest.product.live PUT /discounts/{id}","title":"Update a discount","href":"/reference/latest/billing/update-a-discount"},{"openapi":"billing.latest.product.live DELETE /discounts/{id}","title":"Delete a discount","href":"/reference/latest/billing/delete-a-discount"},{"openapi":"billing.latest.product.live GET /discounts","title":"List all discounts","href":"/reference/latest/billing/list-all-discounts"}]},{"group":"Prices","pages":[{"openapi":"billing.latest.product.live GET /prices","title":"List all Prices","href":"/reference/latest/billing/list-all-prices"},{"openapi":"billing.latest.product.live POST /prices","title":"Create a new Price","href":"/reference/latest/billing/create-a-new-price"},{"openapi":"billing.latest.product.live GET /billing-products","title":"List all billing products","href":"/reference/latest/billing/list-all-billing-products"},{"openapi":"billing.latest.product.live GET /prices/{id}","title":"Get a Price by ID","href":"/reference/latest/billing/get-a-price-by-id"},{"openapi":"billing.latest.product.live PUT /prices/{id}","title":"Update a Price","href":"/reference/latest/billing/update-a-price"},{"openapi":"billing.latest.product.live DELETE /prices/{id}","title":"Delete a Price","href":"/reference/latest/billing/delete-a-price"}]},{"group":"Billing Schedules","pages":[{"openapi":"billing.latest.product.live GET /billing-schedule-custom-field-keys","title":"List Billing Schedule Custom Field Keys","href":"/reference/latest/billing/list-billing-schedule-custom-field-keys"},{"openapi":"billing.latest.product.live POST /billing-schedules/{billingScheduleId}/archive","title":"Archive Billing Schedule","href":"/reference/latest/billing/archive-billing-schedule"},{"openapi":"billing.latest.product.live GET /billing-schedules","title":"List all Billing Schedules","href":"/reference/latest/billing/list-all-billing-schedules"},{"openapi":"billing.latest.product.live POST /billing-schedules","title":"Create Billing Schedule","href":"/reference/latest/billing/create-billing-schedule"},{"openapi":"billing.latest.product.live GET /billing-schedules/{billingScheduleId}","title":"Get Billing Schedule","href":"/reference/latest/billing/get-billing-schedule"},{"openapi":"billing.latest.product.live PUT /billing-schedules/{billingScheduleId}","title":"Update Billing Schedule","href":"/reference/latest/billing/update-billing-schedule"},{"openapi":"billing.latest.product.live POST /billing-schedules/{billingScheduleId}/duplicate","title":"Duplicate a billing schedule","href":"/reference/latest/billing/duplicate-a-billing-schedule"},{"openapi":"billing.latest.product.live POST /billing-schedules/validate-taxes","title":"Validate taxes on a billing schedule","href":"/reference/latest/billing/validate-taxes-on-a-billing-schedule"},{"openapi":"billing.latest.product.live PUT /billing-schedules/{billingScheduleId}/activate","title":"Activate Billing Schedule","href":"/reference/latest/billing/activate-billing-schedule"}]},{"group":"Credits","pages":[{"openapi":"billing.latest.product.live GET /credit-grants/{id}","title":"Get a credit grant","href":"/reference/latest/billing/get-a-credit-grant"},{"openapi":"billing.latest.product.live GET /credits/{id}","title":"Get a customer credit grant","href":"/reference/latest/billing/get-a-customer-credit-grant"},{"openapi":"billing.latest.product.live DELETE /credits/{id}","title":"Delete a credit grant","href":"/reference/latest/billing/delete-a-credit-grant"},{"openapi":"billing.latest.product.live GET /credits","title":"List customer credit grants","href":"/reference/latest/billing/list-customer-credit-grants"},{"openapi":"billing.latest.product.live POST /credits","title":"Create a new credit grant","href":"/reference/latest/billing/create-a-new-credit-grant"},{"openapi":"billing.latest.product.live GET /credit-grants","title":"List credit grants","href":"/reference/latest/billing/list-credit-grants"},{"openapi":"billing.latest.product.live POST /credit-grants","title":"Create a customer credit grant","href":"/reference/latest/billing/create-a-customer-credit-grant"},{"openapi":"billing.latest.product.live GET /credits/{customerId}/balances","title":"List Credit Balances for a customer","href":"/reference/latest/billing/list-credit-balances-for-a-customer"},{"openapi":"billing.latest.product.live GET /credits/{customerId}/grants","title":"List Credit Grants for a customer","href":"/reference/latest/billing/list-credit-grants-for-a-customer"}]}]},{"group":"Collections","pages":[{"group":"Invoices","pages":[{"openapi":"collections.latest.product.live GET /payments/settings/invoices/{id}","title":"Get invoice payment settings","href":"/reference/latest/collections/get-invoice-payment-settings"},{"openapi":"collections.latest.product.live PUT /payments/settings/invoices/{id}","title":"Update invoice payment settings","href":"/reference/latest/collections/update-invoice-payment-settings"},{"openapi":"collections.latest.product.live DELETE /payments/settings/invoices/{id}","title":"Delete invoice payment settings","href":"/reference/latest/collections/delete-invoice-payment-settings"},{"openapi":"collections.latest.product.live POST /payments/settings/invoices","title":"Create invoice payment settings","href":"/reference/latest/collections/create-invoice-payment-settings"},{"openapi":"collections.latest.product.live GET /payments/settings/invoices/for-invoice/{id}","title":"Get invoice payment settings by invoice ID","href":"/reference/latest/collections/get-invoice-payment-settings-by-invoice-id"}]},{"group":"Account Settings","pages":[{"openapi":"collections.latest.product.live GET /payments/settings","title":"Payment settings for Sequence account","href":"/reference/latest/collections/payment-settings-for-sequence-account"},{"openapi":"collections.latest.product.live PUT /payments/settings/{id}","title":"Update payment settings for Sequence account","href":"/reference/latest/collections/update-payment-settings-for-sequence-account"}]},{"group":"Stripe Collection Settings","pages":[{"openapi":"collections.latest.product.live PUT /stripe/collections/settings/{id}","title":"Update Stripe collection settings for Sequence account","href":"/reference/latest/collections/update-stripe-collection-settings-for-sequence-account"},{"openapi":"collections.latest.product.live GET /stripe/collections/settings","title":"Stripe collection settings for Sequence account","href":"/reference/latest/collections/stripe-collection-settings-for-sequence-account"}]},{"group":"Billing Schedules","pages":[{"openapi":"collections.latest.product.live GET /payments/settings/billing-schedules/for-billing-schedule/{id}","title":"Get billing schedule payment settings by billing schedule ID","href":"/reference/latest/collections/get-billing-schedule-payment-settings-by-billing-schedule-id"},{"openapi":"collections.latest.product.live GET /payments/settings/billing-schedules/{id}","title":"Get billing schedule payment settings","href":"/reference/latest/collections/get-billing-schedule-payment-settings"},{"openapi":"collections.latest.product.live PUT /payments/settings/billing-schedules/{id}","title":"Update billing schedule payment settings","href":"/reference/latest/collections/update-billing-schedule-payment-settings"},{"openapi":"collections.latest.product.live DELETE /payments/settings/billing-schedules/{id}","title":"Delete billing schedule payment settings","href":"/reference/latest/collections/delete-billing-schedule-payment-settings"},{"openapi":"collections.latest.product.live POST /payments/settings/billing-schedules","title":"Create billing schedule payment settings","href":"/reference/latest/collections/create-billing-schedule-payment-settings"}]},{"group":"Customers","pages":[{"openapi":"collections.latest.product.live POST /payments/settings/customers","title":"Create customer payment settings","href":"/reference/latest/collections/create-customer-payment-settings"},{"openapi":"collections.latest.product.live GET /payments/settings/customers/{id}","title":"Get customer payment settings","href":"/reference/latest/collections/get-customer-payment-settings"},{"openapi":"collections.latest.product.live PUT /payments/settings/customers/{id}","title":"Update customer payment settings","href":"/reference/latest/collections/update-customer-payment-settings"},{"openapi":"collections.latest.product.live DELETE /payments/settings/customers/{id}","title":"Delete customer payment settings","href":"/reference/latest/collections/delete-customer-payment-settings"}]}]},{"group":"Customer","pages":[{"group":"Organizations","pages":[{"openapi":"customer.latest.product.live POST /customer-organizations","title":"Create a customer organization","href":"/reference/latest/customer/create-a-customer-organization"},{"openapi":"customer.latest.product.live PUT /customer-organizations/{id}/members","title":"Replace members of a customer organization","href":"/reference/latest/customer/replace-members-of-a-customer-organization"},{"openapi":"customer.latest.product.live POST /customer-organizations/{id}/members","title":"Add a customer to a customer organization","href":"/reference/latest/customer/add-a-customer-to-a-customer-organization"}]},{"group":"Customer Aliases","pages":[{"openapi":"customer.latest.product.live PUT /customer-aliases/{id}","title":"Update a Customer Alias","href":"/reference/latest/customer/update-a-customer-alias"},{"openapi":"customer.latest.product.live DELETE /customer-aliases/{id}","title":"Delete a Customer Alias","href":"/reference/latest/customer/delete-a-customer-alias"},{"openapi":"customer.latest.product.live GET /customer-aliases","title":"List all Customer Aliases","href":"/reference/latest/customer/list-all-customer-aliases"},{"openapi":"customer.latest.product.live POST /customer-aliases","title":"Create a new Customer Alias","href":"/reference/latest/customer/create-a-new-customer-alias"},{"openapi":"customer.latest.product.live GET /customers/{id}/aliases","title":"Get Customer Aliases","href":"/reference/latest/customer/get-customer-aliases"},{"openapi":"customer.latest.product.live GET /customers/by-alias/{alias}","title":"Get customer by alias","href":"/reference/latest/customer/get-customer-by-alias"}]},{"group":"Customers","pages":[{"openapi":"customer.latest.product.live POST /customers/{id}/archive","title":"Archive customer","href":"/reference/latest/customer/archive-customer"},{"openapi":"customer.latest.product.live GET /customers/{id}","title":"Get customer","href":"/reference/latest/customer/get-customer"},{"openapi":"customer.latest.product.live PUT /customers/{id}","title":"Update customer","href":"/reference/latest/customer/update-customer"},{"openapi":"customer.latest.product.live GET /customers","title":"List customers","href":"/reference/latest/customer/list-customers"},{"openapi":"customer.latest.product.live POST /customers","title":"Create customer","href":"/reference/latest/customer/create-customer"},{"openapi":"customer.latest.product.live GET /customer-custom-property-keys","title":"List customer custom property keys","href":"/reference/latest/customer/list-customer-custom-property-keys"}]},{"group":"Contacts","pages":[{"openapi":"customer.latest.product.live POST /customers/{customer}/contacts/{id}/archive","title":"Archive a contact","href":"/reference/latest/customer/archive-a-contact"},{"openapi":"customer.latest.product.live GET /customers/{customer}/contacts","title":"List all contacts for a customer","href":"/reference/latest/customer/list-all-contacts-for-a-customer"},{"openapi":"customer.latest.product.live POST /customers/{customer}/contacts","title":"Create a new contact","href":"/reference/latest/customer/create-a-new-contact"},{"openapi":"customer.latest.product.live PUT /customers/{customer}/contacts/{id}","title":"Update a contact","href":"/reference/latest/customer/update-a-contact"}]}]},{"group":"Invoices","pages":[{"group":"Credit Note Line Items","pages":[{"openapi":"invoices.latest.product.live GET /credit-notes/{creditnote}/line-item-groups","title":"List all Credit Note Line Item Groups","href":"/reference/latest/invoices/list-all-credit-note-line-item-groups"},{"openapi":"invoices.latest.product.live POST /credit-notes/{creditnote}/line-item-groups","title":"Create a new Credit Note Line Item Group","href":"/reference/latest/invoices/create-a-new-credit-note-line-item-group"},{"openapi":"invoices.latest.product.live PUT /credit-notes/{creditnote}/line-item-groups/{id}","title":"Update a Credit Note Line Item Group","href":"/reference/latest/invoices/update-a-credit-note-line-item-group"},{"openapi":"invoices.latest.product.live DELETE /credit-notes/{creditnote}/line-item-groups/{id}","title":"Delete a Credit Note Line Item Group","href":"/reference/latest/invoices/delete-a-credit-note-line-item-group"},{"openapi":"invoices.latest.product.live GET /credit-notes/{creditnote}/line-items","title":"List all Credit Note Line Items","href":"/reference/latest/invoices/list-all-credit-note-line-items"},{"openapi":"invoices.latest.product.live POST /credit-notes/{creditnote}/line-items","title":"Create a new Credit Note Line Item","href":"/reference/latest/invoices/create-a-new-credit-note-line-item"},{"openapi":"invoices.latest.product.live PUT /credit-notes/{creditnote}/line-items/{id}","title":"Update a Credit Note Line Item","href":"/reference/latest/invoices/update-a-credit-note-line-item"},{"openapi":"invoices.latest.product.live DELETE /credit-notes/{creditnote}/line-items/{id}","title":"Delete a Credit Note Line Item","href":"/reference/latest/invoices/delete-a-credit-note-line-item"}]},{"group":"Credit Notes","pages":[{"openapi":"invoices.latest.product.live GET /credit-notes","title":"List all Credit Notes","href":"/reference/latest/invoices/list-all-credit-notes"},{"openapi":"invoices.latest.product.live POST /credit-notes","title":"Create a new Credit Note","href":"/reference/latest/invoices/create-a-new-credit-note"},{"openapi":"invoices.latest.product.live GET /credit-notes/{id}","title":"Get a Credit Note by ID","href":"/reference/latest/invoices/get-a-credit-note-by-id"},{"openapi":"invoices.latest.product.live PUT /credit-notes/{id}","title":"Update a Credit Note","href":"/reference/latest/invoices/update-a-credit-note"},{"openapi":"invoices.latest.product.live DELETE /credit-notes/{id}","title":"Delete a Credit Note","href":"/reference/latest/invoices/delete-a-credit-note"},{"openapi":"invoices.latest.product.live POST /credit-notes/{id}/void","title":"Void a Credit Note","href":"/reference/latest/invoices/void-a-credit-note"},{"openapi":"invoices.latest.product.live POST /credit-notes/{id}/mark-as-sent","title":"Mark credit note as sent without triggering actions except revenue recognition","href":"/reference/latest/invoices/mark-credit-note-as-sent-without-triggering-actions-except-revenue-recognition"},{"openapi":"invoices.latest.product.live POST /credit-notes/{id}/send","title":"Send credit note","href":"/reference/latest/invoices/send-credit-note"},{"openapi":"invoices.latest.product.live POST /credit-notes/{id}/finalize","title":"Finalize credit note","href":"/reference/latest/invoices/finalize-credit-note"},{"openapi":"invoices.latest.product.live GET /credit-notes/{id}/download","title":"Download credit note PDF","href":"/reference/latest/invoices/download-credit-note-pdf"},{"openapi":"invoices.latest.product.live POST /credit-note-applications","title":"Apply a Credit Note to an Invoice","href":"/reference/latest/invoices/apply-a-credit-note-to-an-invoice"},{"openapi":"invoices.latest.product.live POST /credit-notes/{id}/finalize-and-send","title":"Finalize and send credit note","href":"/reference/latest/invoices/finalize-and-send-credit-note"}]},{"group":"Invoices","pages":[{"openapi":"invoices.latest.product.live POST /invoices/{id}/draft","title":"Convert upcoming invoice to draft","href":"/reference/latest/invoices/convert-upcoming-invoice-to-draft"},{"openapi":"invoices.latest.product.live POST /invoices/fix-billing-runs","title":"Fix invoices billing runs","href":"/reference/latest/invoices/fix-invoices-billing-runs"},{"openapi":"invoices.latest.product.live GET /invoices/summary","title":"Get an invoice summary","href":"/reference/latest/invoices/get-an-invoice-summary"},{"openapi":"invoices.latest.product.live POST /invoices/{id}/send-payment-reminder","title":"Send a payment reminder for an invoice","href":"/reference/latest/invoices/send-a-payment-reminder-for-an-invoice"},{"openapi":"invoices.latest.product.live PATCH /invoices/{id}/sent","title":"Patch a sent invoice","href":"/reference/latest/invoices/patch-a-sent-invoice"},{"openapi":"invoices.latest.product.live GET /invoices/{id}","title":"Get an Invoice by ID","href":"/reference/latest/invoices/get-an-invoice-by-id"},{"openapi":"invoices.latest.product.live PUT /invoices/{id}","title":"Update an invoice","href":"/reference/latest/invoices/update-an-invoice"},{"openapi":"invoices.latest.product.live DELETE /invoices/{id}","title":"Delete an Invoice","href":"/reference/latest/invoices/delete-an-invoice"},{"openapi":"invoices.latest.product.live PATCH /invoices/{id}","title":"Patch an invoice","href":"/reference/latest/invoices/patch-an-invoice"},{"openapi":"invoices.latest.product.live GET /invoices/{id}/currency-conversions","title":"List Currency Conversions for an Invoice","href":"/reference/latest/invoices/list-currency-conversions-for-an-invoice"},{"openapi":"invoices.latest.product.live POST /invoices/reconcile-with-integration","title":"Reconcile invoices with external integration","href":"/reference/latest/invoices/reconcile-invoices-with-external-integration"},{"openapi":"invoices.latest.product.live POST /invoices/{id}/mark-as-sent","title":"Finalize and mark invoice as sent without triggering actions except revenue recognition","href":"/reference/latest/invoices/finalize-and-mark-invoice-as-sent-without-triggering-actions-except-revenue-recognition"},{"openapi":"invoices.latest.product.live GET /invoices","title":"List all Invoices","href":"/reference/latest/invoices/list-all-invoices"},{"openapi":"invoices.latest.product.live POST /invoices","title":"Create an invoice","href":"/reference/latest/invoices/create-an-invoice"},{"openapi":"invoices.latest.product.live GET /invoices/{id}/download","title":"Download invoice PDF","href":"/reference/latest/invoices/download-invoice-pdf"},{"openapi":"invoices.latest.product.live POST /invoices/{id}/void","title":"Void an Invoice","href":"/reference/latest/invoices/void-an-invoice"},{"openapi":"invoices.latest.product.live POST /invoices/{id}/finalize-and-send","title":"Finalize and send invoice","href":"/reference/latest/invoices/finalize-and-send-invoice"},{"openapi":"invoices.latest.product.live POST /invoices/{id}/send","title":"Send invoice","href":"/reference/latest/invoices/send-invoice"},{"openapi":"invoices.latest.product.live POST /invoices/{id}/finalize","title":"Finalize invoice","href":"/reference/latest/invoices/finalize-invoice"},{"openapi":"invoices.latest.product.live POST /invoices/merge","title":"Merge invoices","href":"/reference/latest/invoices/merge-invoices"},{"openapi":"invoices.latest.product.live PUT /invoices/{id}/payment-status","title":"Update payment status for an invoice","href":"/reference/latest/invoices/update-payment-status-for-an-invoice"},{"openapi":"invoices.latest.product.live GET /invoices/list-summary","title":"List Invoice summaries","href":"/reference/latest/invoices/list-invoice-summaries"}]},{"group":"Invoice Settings","pages":[{"openapi":"invoices.latest.product.live GET /invoices/render-settings","title":"Get or create Invoice Render Settings","href":"/reference/latest/invoices/get-or-create-invoice-render-settings"},{"openapi":"invoices.latest.product.live PUT /invoices/render-settings/{id}","title":"Update an Invoice Render Settings","href":"/reference/latest/invoices/update-an-invoice-render-settings"}]},{"group":"Invoice Line Items","pages":[{"openapi":"invoices.latest.product.live PUT /invoices/{invoice}/line-items/{id}","title":"Update a line item","href":"/reference/latest/invoices/update-a-line-item"},{"openapi":"invoices.latest.product.live DELETE /invoices/{invoice}/line-items/{id}","title":"Deletes a Line Item","href":"/reference/latest/invoices/deletes-a-line-item"},{"openapi":"invoices.latest.product.live GET /invoices/{invoice}/line-items","title":"List all Line Items","href":"/reference/latest/invoices/list-all-line-items"},{"openapi":"invoices.latest.product.live POST /invoices/{invoice}/line-items","title":"Create a new Line Item","href":"/reference/latest/invoices/create-a-new-line-item"},{"openapi":"invoices.latest.product.live PUT /invoices/{invoice}/line-item-groups/{id}","title":"Update a Line Item Group","href":"/reference/latest/invoices/update-a-line-item-group"},{"openapi":"invoices.latest.product.live DELETE /invoices/{invoice}/line-item-groups/{id}","title":"Delete a Line Item Group","href":"/reference/latest/invoices/delete-a-line-item-group"},{"openapi":"invoices.latest.product.live GET /invoices/{invoice}/line-item-groups","title":"List all Line Item Groups","href":"/reference/latest/invoices/list-all-line-item-groups"},{"openapi":"invoices.latest.product.live POST /invoices/{invoice}/line-item-groups","title":"Create a new Line Item Group","href":"/reference/latest/invoices/create-a-new-line-item-group"}]}]},{"group":"Notifications","pages":[{"group":"Notification Policies","pages":[{"openapi":"notifications.latest.product.live DELETE /notifications/policies/{id}/notification-types/{type}","title":"Remove a notification type from a policy","href":"/reference/latest/notifications/remove-a-notification-type-from-a-policy"},{"openapi":"notifications.latest.product.live GET /notifications/policies","title":"List All Notification Policies","href":"/reference/latest/notifications/list-all-notification-policies"},{"openapi":"notifications.latest.product.live POST /notifications/policies","title":"Create Notification policy","href":"/reference/latest/notifications/create-notification-policy"},{"openapi":"notifications.latest.product.live POST /notifications/policies/{id}/notification-types","title":"Add notification types to a policy","href":"/reference/latest/notifications/add-notification-types-to-a-policy"},{"openapi":"notifications.latest.product.live POST /notifications/policies/{id}/recipients","title":"Add recipients to a policy","href":"/reference/latest/notifications/add-recipients-to-a-policy"},{"openapi":"notifications.latest.product.live GET /notifications/policies/{id}","title":"Get notification policy","href":"/reference/latest/notifications/get-notification-policy"},{"openapi":"notifications.latest.product.live DELETE /notifications/policies/{id}","title":"Delete notification policy","href":"/reference/latest/notifications/delete-notification-policy"},{"openapi":"notifications.latest.product.live DELETE /notifications/policies/{id}/recipients/{recipient}","title":"Remove a recipient from a policy","href":"/reference/latest/notifications/remove-a-recipient-from-a-policy"}]}]},{"group":"Orchestra","pages":[{"group":"Assets","pages":[{"openapi":"orchestra.latest.product.live POST /assets","title":"Upload an asset","href":"/reference/latest/orchestra/upload-an-asset"},{"openapi":"orchestra.latest.product.live GET /assets/{id}","title":"Get an asset","href":"/reference/latest/orchestra/get-an-asset"}]}]},{"group":"Product","pages":[{"group":"Products","pages":[{"openapi":"product.latest.product.live GET /products/{id}","title":"Get a Product by ID","href":"/reference/latest/product/get-a-product-by-id"},{"openapi":"product.latest.product.live PUT /products/{id}","title":"Update a Product","href":"/reference/latest/product/update-a-product"},{"openapi":"product.latest.product.live GET /products","title":"List all Products","href":"/reference/latest/product/list-all-products"},{"openapi":"product.latest.product.live POST /products","title":"Create a new Product","href":"/reference/latest/product/create-a-new-product"},{"openapi":"product.latest.product.live POST /products/{id}/archive","title":"Archive a product","href":"/reference/latest/product/archive-a-product"}]},{"group":"List Prices","pages":[{"openapi":"product.latest.product.live GET /list-prices","title":"List all list prices","href":"/reference/latest/product/list-all-list-prices"},{"openapi":"product.latest.product.live POST /list-prices","title":"Create a list price","href":"/reference/latest/product/create-a-list-price"},{"openapi":"product.latest.product.live GET /list-prices/{id}","title":"Get a list price","href":"/reference/latest/product/get-a-list-price"},{"openapi":"product.latest.product.live PUT /list-prices/{id}","title":"Update a list price","href":"/reference/latest/product/update-a-list-price"},{"openapi":"product.latest.product.live POST /list-prices/{id}/archive","title":"Archive a list price","href":"/reference/latest/product/archive-a-list-price"}]}]},{"group":"Quote","pages":[{"group":"Quotes","pages":[{"openapi":"quote.latest.product.live GET /quotes","title":"List quotes","href":"/reference/latest/quote/list-quotes"},{"openapi":"quote.latest.product.live GET /quotes/{id}/download","title":"Download quote PDF","href":"/reference/latest/quote/download-quote-pdf"},{"openapi":"quote.latest.product.live POST /quotes/{quoteId}/notify-recipients","title":"Notify selected quote recipients by email","href":"/reference/latest/quote/notify-selected-quote-recipients-by-email"},{"openapi":"quote.latest.product.live POST /quotes/{id}/accept","title":"Accept a published Quote","href":"/reference/latest/quote/accept-a-published-quote"},{"openapi":"quote.latest.product.live POST /quotes/{id}/publish","title":"Publish a quote","href":"/reference/latest/quote/publish-a-quote"},{"openapi":"quote.latest.product.live POST /quotes/{quoteId}/send-reminders","title":"Send reminder emails to all that have not signed.","href":"/reference/latest/quote/send-reminder-emails-to-all-that-have-not-signed."},{"openapi":"quote.latest.product.live GET /quotes/{id}","title":"Get one of your quotes","href":"/reference/latest/quote/get-one-of-your-quotes"},{"openapi":"quote.latest.product.live PUT /quotes/{id}","title":"Update one of your quotes","href":"/reference/latest/quote/update-one-of-your-quotes"},{"openapi":"quote.latest.product.live GET /quotes/{id}/analytics","title":"Get quote analytics","href":"/reference/latest/quote/get-quote-analytics"},{"openapi":"quote.latest.product.live POST /quotes/from-template/{id}","title":"Create a quote from a template","href":"/reference/latest/quote/create-a-quote-from-a-template"},{"openapi":"quote.latest.product.live POST /quotes/{id}/archive","title":"Archive a quote","href":"/reference/latest/quote/archive-a-quote"},{"openapi":"quote.latest.product.live GET /quotes/{id}/published","title":"Get a published quote","href":"/reference/latest/quote/get-a-published-quote"}]},{"group":"Quote Templates","pages":[{"openapi":"quote.latest.product.live GET /quote-templates","title":"List quote templates","href":"/reference/latest/quote/list-quote-templates"}]}]},{"group":"Taxes","pages":[{"group":"Tax Registrations","pages":[{"openapi":"taxes.latest.product.live GET /tax-registrations/{id}","title":"Get a Tax Registration by ID","href":"/reference/latest/taxes/get-a-tax-registration-by-id"},{"openapi":"taxes.latest.product.live PUT /tax-registrations/{id}","title":"Update a Tax Registration","href":"/reference/latest/taxes/update-a-tax-registration"},{"openapi":"taxes.latest.product.live DELETE /tax-registrations/{id}","title":"Delete a Tax Registration","href":"/reference/latest/taxes/delete-a-tax-registration"},{"openapi":"taxes.latest.product.live GET /tax-registrations","title":"List all Tax Registrations","href":"/reference/latest/taxes/list-all-tax-registrations"},{"openapi":"taxes.latest.product.live POST /tax-registrations","title":"Create a new Tax Registration","href":"/reference/latest/taxes/create-a-new-tax-registration"},{"openapi":"taxes.latest.product.live GET /tax-registrations/for-customer/{id}","title":"Get all tax registrations for a customer by customer ID","href":"/reference/latest/taxes/get-all-tax-registrations-for-a-customer-by-customer-id"},{"openapi":"taxes.latest.product.live GET /tax-registrations/for-merchant/{id}","title":"Get all tax registrations for a merchant by merchant ID","href":"/reference/latest/taxes/get-all-tax-registrations-for-a-merchant-by-merchant-id"}]},{"group":"Tax Rates","pages":[{"openapi":"taxes.latest.product.live GET /tax-rates","title":"List all Tax Rates","href":"/reference/latest/taxes/list-all-tax-rates"},{"openapi":"taxes.latest.product.live POST /tax-rates","title":"Create a new TaxRate","href":"/reference/latest/taxes/create-a-new-taxrate"},{"openapi":"taxes.latest.product.live GET /tax-rates/{id}","title":"Get a Tax Rate by ID","href":"/reference/latest/taxes/get-a-tax-rate-by-id"},{"openapi":"taxes.latest.product.live PUT /tax-rates/{id}","title":"Update a TaxRate","href":"/reference/latest/taxes/update-a-taxrate"},{"openapi":"taxes.latest.product.live DELETE /tax-rates/{id}","title":"Delete a Tax Rate","href":"/reference/latest/taxes/delete-a-tax-rate"},{"openapi":"taxes.latest.product.live POST /tax-rates/{id}/archive","title":"Archive a tax rate","href":"/reference/latest/taxes/archive-a-tax-rate"}]}]},{"group":"Usage","pages":[{"group":"Usage Events","pages":[{"openapi":"usage.latest.product.live GET /usage-events","title":"List all Usage Events","href":"/reference/latest/usage/list-all-usage-events"},{"openapi":"usage.latest.product.live POST /usage-events","title":"Create a new Usage Event","href":"/reference/latest/usage/create-a-new-usage-event"}]},{"group":"Seat Metrics","pages":[{"openapi":"usage.latest.product.live GET /seat-metrics","title":"List all seat metrics","href":"/reference/latest/usage/list-all-seat-metrics"},{"openapi":"usage.latest.product.live POST /seat-metrics","title":"Create a seat metric","href":"/reference/latest/usage/create-a-seat-metric"},{"openapi":"usage.latest.product.live GET /seat-metrics/{id}","title":"Get a seat metric","href":"/reference/latest/usage/get-a-seat-metric"},{"openapi":"usage.latest.product.live PUT /seat-metrics/{id}","title":"Update a seat metric","href":"/reference/latest/usage/update-a-seat-metric"},{"openapi":"usage.latest.product.live DELETE /seat-metrics/{id}","title":"Delete a seat metric","href":"/reference/latest/usage/delete-a-seat-metric"},{"openapi":"usage.latest.product.live GET /seat-balances","title":"List Seat balances by Customer","href":"/reference/latest/usage/list-seat-balances-by-customer"}]},{"group":"Seat Events","pages":[{"openapi":"usage.latest.product.live GET /seat-events","title":"List all seat events","href":"/reference/latest/usage/list-all-seat-events"},{"openapi":"usage.latest.product.live POST /seat-events","title":"Create a seat event","href":"/reference/latest/usage/create-a-seat-event"},{"openapi":"usage.latest.product.live GET /seat-events/{id}","title":"Get a seat event by ID","href":"/reference/latest/usage/get-a-seat-event-by-id"}]},{"group":"Usage Metrics","pages":[{"openapi":"usage.latest.product.live POST /usage-metrics","title":"Create a new Usage Metric","href":"/reference/latest/usage/create-a-new-usage-metric"},{"openapi":"usage.latest.product.live GET /usage-metrics","title":"List all Usage Metrics","href":"/reference/latest/usage/list-all-usage-metrics"},{"openapi":"usage.latest.product.live GET /usage-metrics/{id}","title":"Get a Usage Metric by ID","href":"/reference/latest/usage/get-a-usage-metric-by-id"},{"openapi":"usage.latest.product.live PUT /usage-metrics/{id}","title":"Update a Usage Metric","href":"/reference/latest/usage/update-a-usage-metric"},{"openapi":"usage.latest.product.live DELETE /usage-metrics/{id}","title":"Delete a Usage Metric","href":"/reference/latest/usage/delete-a-usage-metric"},{"openapi":"usage.latest.product.live GET /usage-metrics/{usageMetricId}/calculate","title":"Calculate usage metric for customer and timeframe","href":"/reference/latest/usage/calculate-usage-metric-for-customer-and-timeframe"}]}]}]},{"group":"Version 2024-07-30","pages":[{"group":"Account","pages":[{"group":"Accounts","pages":[{"openapi":"account.2024-07-30.product.live GET /sequence-accounts/{id}","title":"Get your account","href":"/reference/2024-07-30/account/get-your-account"},{"openapi":"account.2024-07-30.product.live PUT /sequence-accounts/{id}","title":"Update Account","href":"/reference/2024-07-30/account/update-account"},{"openapi":"account.2024-07-30.product.live GET /sequence-accounts","title":"List your accounts","href":"/reference/2024-07-30/account/list-your-accounts"}]},{"group":"Users","pages":[{"openapi":"account.2024-07-30.product.live GET /users","title":"List all Users","href":"/reference/2024-07-30/account/list-all-users"},{"openapi":"account.2024-07-30.product.live GET /users/{id}","title":"Get a user","href":"/reference/2024-07-30/account/get-a-user"},{"openapi":"account.2024-07-30.product.live DELETE /users/{id}","title":"Delete User","href":"/reference/2024-07-30/account/delete-user"}]}]},{"group":"Activity Stream","pages":[{"group":"Activities","pages":[{"openapi":"activity-stream.2024-07-30.product.live GET /activity-logs","title":"List all Activity Logs","href":"/reference/2024-07-30/activity-stream/list-all-activity-logs"},{"openapi":"activity-stream.2024-07-30.product.live GET /activity-logs/{id}","title":"Get an Activity Log by ID","href":"/reference/2024-07-30/activity-stream/get-an-activity-log-by-id"}]}]},{"group":"Billing","pages":[{"group":"Discounts","pages":[{"openapi":"billing.2024-07-30.product.live GET /discounts/{id}","title":"Get a discount by ID","href":"/reference/2024-07-30/billing/get-a-discount-by-id"},{"openapi":"billing.2024-07-30.product.live PUT /discounts/{id}","title":"Update a discount","href":"/reference/2024-07-30/billing/update-a-discount"},{"openapi":"billing.2024-07-30.product.live DELETE /discounts/{id}","title":"Delete a discount","href":"/reference/2024-07-30/billing/delete-a-discount"},{"openapi":"billing.2024-07-30.product.live GET /discounts","title":"List all discounts","href":"/reference/2024-07-30/billing/list-all-discounts"}]},{"group":"Prices","pages":[{"openapi":"billing.2024-07-30.product.live GET /prices","title":"List all Prices","href":"/reference/2024-07-30/billing/list-all-prices"},{"openapi":"billing.2024-07-30.product.live POST /prices","title":"Create a new Price","href":"/reference/2024-07-30/billing/create-a-new-price"},{"openapi":"billing.2024-07-30.product.live GET /billing-products","title":"List all billing products","href":"/reference/2024-07-30/billing/list-all-billing-products"},{"openapi":"billing.2024-07-30.product.live GET /prices/{id}","title":"Get a Price by ID","href":"/reference/2024-07-30/billing/get-a-price-by-id"},{"openapi":"billing.2024-07-30.product.live PUT /prices/{id}","title":"Update a Price","href":"/reference/2024-07-30/billing/update-a-price"},{"openapi":"billing.2024-07-30.product.live DELETE /prices/{id}","title":"Delete a Price","href":"/reference/2024-07-30/billing/delete-a-price"}]},{"group":"Billing Schedules","pages":[{"openapi":"billing.2024-07-30.product.live GET /billing-schedule-custom-field-keys","title":"List Billing Schedule Custom Field Keys","href":"/reference/2024-07-30/billing/list-billing-schedule-custom-field-keys"},{"openapi":"billing.2024-07-30.product.live POST /billing-schedules/{billingScheduleId}/archive","title":"Archive Billing Schedule","href":"/reference/2024-07-30/billing/archive-billing-schedule"},{"openapi":"billing.2024-07-30.product.live GET /billing-schedules","title":"List all Billing Schedules","href":"/reference/2024-07-30/billing/list-all-billing-schedules"},{"openapi":"billing.2024-07-30.product.live POST /billing-schedules","title":"Create Billing Schedule","href":"/reference/2024-07-30/billing/create-billing-schedule"},{"openapi":"billing.2024-07-30.product.live GET /billing-schedules/{billingScheduleId}","title":"Get Billing Schedule","href":"/reference/2024-07-30/billing/get-billing-schedule"},{"openapi":"billing.2024-07-30.product.live PUT /billing-schedules/{billingScheduleId}","title":"Update Billing Schedule","href":"/reference/2024-07-30/billing/update-billing-schedule"},{"openapi":"billing.2024-07-30.product.live POST /billing-schedules/{billingScheduleId}/duplicate","title":"Duplicate a billing schedule","href":"/reference/2024-07-30/billing/duplicate-a-billing-schedule"},{"openapi":"billing.2024-07-30.product.live POST /billing-schedules/validate-taxes","title":"Validate taxes on a billing schedule","href":"/reference/2024-07-30/billing/validate-taxes-on-a-billing-schedule"},{"openapi":"billing.2024-07-30.product.live PUT /billing-schedules/{billingScheduleId}/activate","title":"Activate Billing Schedule","href":"/reference/2024-07-30/billing/activate-billing-schedule"}]},{"group":"Credits","pages":[{"openapi":"billing.2024-07-30.product.live GET /credit-grants/{id}","title":"Get a credit grant","href":"/reference/2024-07-30/billing/get-a-credit-grant"},{"openapi":"billing.2024-07-30.product.live GET /credits/{id}","title":"Get a customer credit grant","href":"/reference/2024-07-30/billing/get-a-customer-credit-grant"},{"openapi":"billing.2024-07-30.product.live DELETE /credits/{id}","title":"Delete a credit grant","href":"/reference/2024-07-30/billing/delete-a-credit-grant"},{"openapi":"billing.2024-07-30.product.live GET /credits","title":"List customer credit grants","href":"/reference/2024-07-30/billing/list-customer-credit-grants"},{"openapi":"billing.2024-07-30.product.live POST /credits","title":"Create a new credit grant","href":"/reference/2024-07-30/billing/create-a-new-credit-grant"},{"openapi":"billing.2024-07-30.product.live GET /credit-grants","title":"List credit grants","href":"/reference/2024-07-30/billing/list-credit-grants"},{"openapi":"billing.2024-07-30.product.live POST /credit-grants","title":"Create a customer credit grant","href":"/reference/2024-07-30/billing/create-a-customer-credit-grant"},{"openapi":"billing.2024-07-30.product.live GET /credits/{customerId}/balances","title":"List Credit Balances for a customer","href":"/reference/2024-07-30/billing/list-credit-balances-for-a-customer"},{"openapi":"billing.2024-07-30.product.live GET /credits/{customerId}/grants","title":"List Credit Grants for a customer","href":"/reference/2024-07-30/billing/list-credit-grants-for-a-customer"}]}]},{"group":"Collections","pages":[{"group":"Invoices","pages":[{"openapi":"collections.2024-07-30.product.live GET /payments/settings/invoices/{id}","title":"Get invoice payment settings","href":"/reference/2024-07-30/collections/get-invoice-payment-settings"},{"openapi":"collections.2024-07-30.product.live PUT /payments/settings/invoices/{id}","title":"Update invoice payment settings","href":"/reference/2024-07-30/collections/update-invoice-payment-settings"},{"openapi":"collections.2024-07-30.product.live DELETE /payments/settings/invoices/{id}","title":"Delete invoice payment settings","href":"/reference/2024-07-30/collections/delete-invoice-payment-settings"},{"openapi":"collections.2024-07-30.product.live POST /payments/settings/invoices","title":"Create invoice payment settings","href":"/reference/2024-07-30/collections/create-invoice-payment-settings"},{"openapi":"collections.2024-07-30.product.live GET /payments/settings/invoices/for-invoice/{id}","title":"Get invoice payment settings by invoice ID","href":"/reference/2024-07-30/collections/get-invoice-payment-settings-by-invoice-id"}]},{"group":"Account Settings","pages":[{"openapi":"collections.2024-07-30.product.live GET /payments/settings","title":"Payment settings for Sequence account","href":"/reference/2024-07-30/collections/payment-settings-for-sequence-account"},{"openapi":"collections.2024-07-30.product.live PUT /payments/settings/{id}","title":"Update payment settings for Sequence account","href":"/reference/2024-07-30/collections/update-payment-settings-for-sequence-account"}]},{"group":"Stripe Collection Settings","pages":[{"openapi":"collections.2024-07-30.product.live PUT /stripe/collections/settings/{id}","title":"Update Stripe collection settings for Sequence account","href":"/reference/2024-07-30/collections/update-stripe-collection-settings-for-sequence-account"},{"openapi":"collections.2024-07-30.product.live GET /stripe/collections/settings","title":"Stripe collection settings for Sequence account","href":"/reference/2024-07-30/collections/stripe-collection-settings-for-sequence-account"}]},{"group":"Billing Schedules","pages":[{"openapi":"collections.2024-07-30.product.live GET /payments/settings/billing-schedules/for-billing-schedule/{id}","title":"Get billing schedule payment settings by billing schedule ID","href":"/reference/2024-07-30/collections/get-billing-schedule-payment-settings-by-billing-schedule-id"},{"openapi":"collections.2024-07-30.product.live GET /payments/settings/billing-schedules/{id}","title":"Get billing schedule payment settings","href":"/reference/2024-07-30/collections/get-billing-schedule-payment-settings"},{"openapi":"collections.2024-07-30.product.live PUT /payments/settings/billing-schedules/{id}","title":"Update billing schedule payment settings","href":"/reference/2024-07-30/collections/update-billing-schedule-payment-settings"},{"openapi":"collections.2024-07-30.product.live DELETE /payments/settings/billing-schedules/{id}","title":"Delete billing schedule payment settings","href":"/reference/2024-07-30/collections/delete-billing-schedule-payment-settings"},{"openapi":"collections.2024-07-30.product.live POST /payments/settings/billing-schedules","title":"Create billing schedule payment settings","href":"/reference/2024-07-30/collections/create-billing-schedule-payment-settings"}]},{"group":"Customers","pages":[{"openapi":"collections.2024-07-30.product.live POST /payments/settings/customers","title":"Create customer payment settings","href":"/reference/2024-07-30/collections/create-customer-payment-settings"},{"openapi":"collections.2024-07-30.product.live GET /payments/settings/customers/{id}","title":"Get customer payment settings","href":"/reference/2024-07-30/collections/get-customer-payment-settings"},{"openapi":"collections.2024-07-30.product.live PUT /payments/settings/customers/{id}","title":"Update customer payment settings","href":"/reference/2024-07-30/collections/update-customer-payment-settings"},{"openapi":"collections.2024-07-30.product.live DELETE /payments/settings/customers/{id}","title":"Delete customer payment settings","href":"/reference/2024-07-30/collections/delete-customer-payment-settings"}]}]},{"group":"Customer","pages":[{"group":"Organizations","pages":[{"openapi":"customer.2024-07-30.product.live POST /customer-organizations","title":"Create a customer organization","href":"/reference/2024-07-30/customer/create-a-customer-organization"},{"openapi":"customer.2024-07-30.product.live PUT /customer-organizations/{id}/members","title":"Replace members of a customer organization","href":"/reference/2024-07-30/customer/replace-members-of-a-customer-organization"},{"openapi":"customer.2024-07-30.product.live POST /customer-organizations/{id}/members","title":"Add a customer to a customer organization","href":"/reference/2024-07-30/customer/add-a-customer-to-a-customer-organization"}]},{"group":"Customer Aliases","pages":[{"openapi":"customer.2024-07-30.product.live PUT /customer-aliases/{id}","title":"Update a Customer Alias","href":"/reference/2024-07-30/customer/update-a-customer-alias"},{"openapi":"customer.2024-07-30.product.live DELETE /customer-aliases/{id}","title":"Delete a Customer Alias","href":"/reference/2024-07-30/customer/delete-a-customer-alias"},{"openapi":"customer.2024-07-30.product.live GET /customer-aliases","title":"List all Customer Aliases","href":"/reference/2024-07-30/customer/list-all-customer-aliases"},{"openapi":"customer.2024-07-30.product.live POST /customer-aliases","title":"Create a new Customer Alias","href":"/reference/2024-07-30/customer/create-a-new-customer-alias"},{"openapi":"customer.2024-07-30.product.live GET /customers/{id}/aliases","title":"Get Customer Aliases","href":"/reference/2024-07-30/customer/get-customer-aliases"},{"openapi":"customer.2024-07-30.product.live GET /customers/by-alias/{alias}","title":"Get customer by alias","href":"/reference/2024-07-30/customer/get-customer-by-alias"}]},{"group":"Customers","pages":[{"openapi":"customer.2024-07-30.product.live POST /customers/{id}/archive","title":"Archive customer","href":"/reference/2024-07-30/customer/archive-customer"},{"openapi":"customer.2024-07-30.product.live GET /customers/{id}","title":"Get customer","href":"/reference/2024-07-30/customer/get-customer"},{"openapi":"customer.2024-07-30.product.live PUT /customers/{id}","title":"Update customer","href":"/reference/2024-07-30/customer/update-customer"},{"openapi":"customer.2024-07-30.product.live GET /customers","title":"List customers","href":"/reference/2024-07-30/customer/list-customers"},{"openapi":"customer.2024-07-30.product.live POST /customers","title":"Create customer","href":"/reference/2024-07-30/customer/create-customer"},{"openapi":"customer.2024-07-30.product.live GET /customer-custom-property-keys","title":"List customer custom property keys","href":"/reference/2024-07-30/customer/list-customer-custom-property-keys"}]},{"group":"Contacts","pages":[{"openapi":"customer.2024-07-30.product.live POST /customers/{customer}/contacts/{id}/archive","title":"Archive a contact","href":"/reference/2024-07-30/customer/archive-a-contact"},{"openapi":"customer.2024-07-30.product.live GET /customers/{customer}/contacts","title":"List all contacts for a customer","href":"/reference/2024-07-30/customer/list-all-contacts-for-a-customer"},{"openapi":"customer.2024-07-30.product.live POST /customers/{customer}/contacts","title":"Create a new contact","href":"/reference/2024-07-30/customer/create-a-new-contact"},{"openapi":"customer.2024-07-30.product.live PUT /customers/{customer}/contacts/{id}","title":"Update a contact","href":"/reference/2024-07-30/customer/update-a-contact"}]}]},{"group":"Invoices","pages":[{"group":"Credit Note Line Items","pages":[{"openapi":"invoices.2024-07-30.product.live GET /credit-notes/{creditnote}/line-item-groups","title":"List all Credit Note Line Item Groups","href":"/reference/2024-07-30/invoices/list-all-credit-note-line-item-groups"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes/{creditnote}/line-item-groups","title":"Create a new Credit Note Line Item Group","href":"/reference/2024-07-30/invoices/create-a-new-credit-note-line-item-group"},{"openapi":"invoices.2024-07-30.product.live PUT /credit-notes/{creditnote}/line-item-groups/{id}","title":"Update a Credit Note Line Item Group","href":"/reference/2024-07-30/invoices/update-a-credit-note-line-item-group"},{"openapi":"invoices.2024-07-30.product.live DELETE /credit-notes/{creditnote}/line-item-groups/{id}","title":"Delete a Credit Note Line Item Group","href":"/reference/2024-07-30/invoices/delete-a-credit-note-line-item-group"},{"openapi":"invoices.2024-07-30.product.live GET /credit-notes/{creditnote}/line-items","title":"List all Credit Note Line Items","href":"/reference/2024-07-30/invoices/list-all-credit-note-line-items"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes/{creditnote}/line-items","title":"Create a new Credit Note Line Item","href":"/reference/2024-07-30/invoices/create-a-new-credit-note-line-item"},{"openapi":"invoices.2024-07-30.product.live PUT /credit-notes/{creditnote}/line-items/{id}","title":"Update a Credit Note Line Item","href":"/reference/2024-07-30/invoices/update-a-credit-note-line-item"},{"openapi":"invoices.2024-07-30.product.live DELETE /credit-notes/{creditnote}/line-items/{id}","title":"Delete a Credit Note Line Item","href":"/reference/2024-07-30/invoices/delete-a-credit-note-line-item"}]},{"group":"Credit Notes","pages":[{"openapi":"invoices.2024-07-30.product.live GET /credit-notes","title":"List all Credit Notes","href":"/reference/2024-07-30/invoices/list-all-credit-notes"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes","title":"Create a new Credit Note","href":"/reference/2024-07-30/invoices/create-a-new-credit-note"},{"openapi":"invoices.2024-07-30.product.live GET /credit-notes/{id}","title":"Get a Credit Note by ID","href":"/reference/2024-07-30/invoices/get-a-credit-note-by-id"},{"openapi":"invoices.2024-07-30.product.live PUT /credit-notes/{id}","title":"Update a Credit Note","href":"/reference/2024-07-30/invoices/update-a-credit-note"},{"openapi":"invoices.2024-07-30.product.live DELETE /credit-notes/{id}","title":"Delete a Credit Note","href":"/reference/2024-07-30/invoices/delete-a-credit-note"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes/{id}/void","title":"Void a Credit Note","href":"/reference/2024-07-30/invoices/void-a-credit-note"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes/{id}/mark-as-sent","title":"Mark credit note as sent without triggering actions except revenue recognition","href":"/reference/2024-07-30/invoices/mark-credit-note-as-sent-without-triggering-actions-except-revenue-recognition"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes/{id}/send","title":"Send credit note","href":"/reference/2024-07-30/invoices/send-credit-note"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes/{id}/finalize","title":"Finalize credit note","href":"/reference/2024-07-30/invoices/finalize-credit-note"},{"openapi":"invoices.2024-07-30.product.live GET /credit-notes/{id}/download","title":"Download credit note PDF","href":"/reference/2024-07-30/invoices/download-credit-note-pdf"},{"openapi":"invoices.2024-07-30.product.live POST /credit-note-applications","title":"Apply a Credit Note to an Invoice","href":"/reference/2024-07-30/invoices/apply-a-credit-note-to-an-invoice"},{"openapi":"invoices.2024-07-30.product.live POST /credit-notes/{id}/finalize-and-send","title":"Finalize and send credit note","href":"/reference/2024-07-30/invoices/finalize-and-send-credit-note"}]},{"group":"Invoices","pages":[{"openapi":"invoices.2024-07-30.product.live POST /invoices/{id}/draft","title":"Convert upcoming invoice to draft","href":"/reference/2024-07-30/invoices/convert-upcoming-invoice-to-draft"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/fix-billing-runs","title":"Fix invoices billing runs","href":"/reference/2024-07-30/invoices/fix-invoices-billing-runs"},{"openapi":"invoices.2024-07-30.product.live GET /invoices/summary","title":"Get an invoice summary","href":"/reference/2024-07-30/invoices/get-an-invoice-summary"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{id}/send-payment-reminder","title":"Send a payment reminder for an invoice","href":"/reference/2024-07-30/invoices/send-a-payment-reminder-for-an-invoice"},{"openapi":"invoices.2024-07-30.product.live PATCH /invoices/{id}/sent","title":"Patch a sent invoice","href":"/reference/2024-07-30/invoices/patch-a-sent-invoice"},{"openapi":"invoices.2024-07-30.product.live GET /invoices/{id}","title":"Get an Invoice by ID","href":"/reference/2024-07-30/invoices/get-an-invoice-by-id"},{"openapi":"invoices.2024-07-30.product.live PUT /invoices/{id}","title":"Update an invoice","href":"/reference/2024-07-30/invoices/update-an-invoice"},{"openapi":"invoices.2024-07-30.product.live DELETE /invoices/{id}","title":"Delete an Invoice","href":"/reference/2024-07-30/invoices/delete-an-invoice"},{"openapi":"invoices.2024-07-30.product.live PATCH /invoices/{id}","title":"Patch an invoice","href":"/reference/2024-07-30/invoices/patch-an-invoice"},{"openapi":"invoices.2024-07-30.product.live GET /invoices/{id}/currency-conversions","title":"List Currency Conversions for an Invoice","href":"/reference/2024-07-30/invoices/list-currency-conversions-for-an-invoice"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/reconcile-with-integration","title":"Reconcile invoices with external integration","href":"/reference/2024-07-30/invoices/reconcile-invoices-with-external-integration"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{id}/mark-as-sent","title":"Finalize and mark invoice as sent without triggering actions except revenue recognition","href":"/reference/2024-07-30/invoices/finalize-and-mark-invoice-as-sent-without-triggering-actions-except-revenue-recognition"},{"openapi":"invoices.2024-07-30.product.live GET /invoices","title":"List all Invoices","href":"/reference/2024-07-30/invoices/list-all-invoices"},{"openapi":"invoices.2024-07-30.product.live POST /invoices","title":"Create an invoice","href":"/reference/2024-07-30/invoices/create-an-invoice"},{"openapi":"invoices.2024-07-30.product.live GET /invoices/{id}/download","title":"Download invoice PDF","href":"/reference/2024-07-30/invoices/download-invoice-pdf"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{id}/void","title":"Void an Invoice","href":"/reference/2024-07-30/invoices/void-an-invoice"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{id}/finalize-and-send","title":"Finalize and send invoice","href":"/reference/2024-07-30/invoices/finalize-and-send-invoice"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{id}/send","title":"Send invoice","href":"/reference/2024-07-30/invoices/send-invoice"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{id}/finalize","title":"Finalize invoice","href":"/reference/2024-07-30/invoices/finalize-invoice"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/merge","title":"Merge invoices","href":"/reference/2024-07-30/invoices/merge-invoices"},{"openapi":"invoices.2024-07-30.product.live PUT /invoices/{id}/payment-status","title":"Update payment status for an invoice","href":"/reference/2024-07-30/invoices/update-payment-status-for-an-invoice"},{"openapi":"invoices.2024-07-30.product.live GET /invoices/list-summary","title":"List Invoice summaries","href":"/reference/2024-07-30/invoices/list-invoice-summaries"}]},{"group":"Invoice Settings","pages":[{"openapi":"invoices.2024-07-30.product.live GET /invoices/render-settings","title":"Get or create Invoice Render Settings","href":"/reference/2024-07-30/invoices/get-or-create-invoice-render-settings"},{"openapi":"invoices.2024-07-30.product.live PUT /invoices/render-settings/{id}","title":"Update an Invoice Render Settings","href":"/reference/2024-07-30/invoices/update-an-invoice-render-settings"}]},{"group":"Invoice Line Items","pages":[{"openapi":"invoices.2024-07-30.product.live PUT /invoices/{invoice}/line-items/{id}","title":"Update a line item","href":"/reference/2024-07-30/invoices/update-a-line-item"},{"openapi":"invoices.2024-07-30.product.live DELETE /invoices/{invoice}/line-items/{id}","title":"Deletes a Line Item","href":"/reference/2024-07-30/invoices/deletes-a-line-item"},{"openapi":"invoices.2024-07-30.product.live GET /invoices/{invoice}/line-items","title":"List all Line Items","href":"/reference/2024-07-30/invoices/list-all-line-items"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{invoice}/line-items","title":"Create a new Line Item","href":"/reference/2024-07-30/invoices/create-a-new-line-item"},{"openapi":"invoices.2024-07-30.product.live PUT /invoices/{invoice}/line-item-groups/{id}","title":"Update a Line Item Group","href":"/reference/2024-07-30/invoices/update-a-line-item-group"},{"openapi":"invoices.2024-07-30.product.live DELETE /invoices/{invoice}/line-item-groups/{id}","title":"Delete a Line Item Group","href":"/reference/2024-07-30/invoices/delete-a-line-item-group"},{"openapi":"invoices.2024-07-30.product.live GET /invoices/{invoice}/line-item-groups","title":"List all Line Item Groups","href":"/reference/2024-07-30/invoices/list-all-line-item-groups"},{"openapi":"invoices.2024-07-30.product.live POST /invoices/{invoice}/line-item-groups","title":"Create a new Line Item Group","href":"/reference/2024-07-30/invoices/create-a-new-line-item-group"}]}]},{"group":"Notifications","pages":[{"group":"Notification Policies","pages":[{"openapi":"notifications.2024-07-30.product.live DELETE /notifications/policies/{id}/notification-types/{type}","title":"Remove a notification type from a policy","href":"/reference/2024-07-30/notifications/remove-a-notification-type-from-a-policy"},{"openapi":"notifications.2024-07-30.product.live GET /notifications/policies","title":"List All Notification Policies","href":"/reference/2024-07-30/notifications/list-all-notification-policies"},{"openapi":"notifications.2024-07-30.product.live POST /notifications/policies","title":"Create Notification policy","href":"/reference/2024-07-30/notifications/create-notification-policy"},{"openapi":"notifications.2024-07-30.product.live POST /notifications/policies/{id}/notification-types","title":"Add notification types to a policy","href":"/reference/2024-07-30/notifications/add-notification-types-to-a-policy"},{"openapi":"notifications.2024-07-30.product.live POST /notifications/policies/{id}/recipients","title":"Add recipients to a policy","href":"/reference/2024-07-30/notifications/add-recipients-to-a-policy"},{"openapi":"notifications.2024-07-30.product.live GET /notifications/policies/{id}","title":"Get notification policy","href":"/reference/2024-07-30/notifications/get-notification-policy"},{"openapi":"notifications.2024-07-30.product.live DELETE /notifications/policies/{id}","title":"Delete notification policy","href":"/reference/2024-07-30/notifications/delete-notification-policy"},{"openapi":"notifications.2024-07-30.product.live DELETE /notifications/policies/{id}/recipients/{recipient}","title":"Remove a recipient from a policy","href":"/reference/2024-07-30/notifications/remove-a-recipient-from-a-policy"}]}]},{"group":"Orchestra","pages":[{"group":"Assets","pages":[{"openapi":"orchestra.2024-07-30.product.live POST /assets","title":"Upload an asset","href":"/reference/2024-07-30/orchestra/upload-an-asset"},{"openapi":"orchestra.2024-07-30.product.live GET /assets/{id}","title":"Get an asset","href":"/reference/2024-07-30/orchestra/get-an-asset"}]}]},{"group":"Product","pages":[{"group":"Products","pages":[{"openapi":"product.2024-07-30.product.live GET /products/{id}","title":"Get a Product by ID","href":"/reference/2024-07-30/product/get-a-product-by-id"},{"openapi":"product.2024-07-30.product.live PUT /products/{id}","title":"Update a Product","href":"/reference/2024-07-30/product/update-a-product"},{"openapi":"product.2024-07-30.product.live GET /products","title":"List all Products","href":"/reference/2024-07-30/product/list-all-products"},{"openapi":"product.2024-07-30.product.live POST /products","title":"Create a new Product","href":"/reference/2024-07-30/product/create-a-new-product"},{"openapi":"product.2024-07-30.product.live POST /products/{id}/archive","title":"Archive a product","href":"/reference/2024-07-30/product/archive-a-product"}]},{"group":"List Prices","pages":[{"openapi":"product.2024-07-30.product.live GET /list-prices","title":"List all list prices","href":"/reference/2024-07-30/product/list-all-list-prices"},{"openapi":"product.2024-07-30.product.live POST /list-prices","title":"Create a list price","href":"/reference/2024-07-30/product/create-a-list-price"},{"openapi":"product.2024-07-30.product.live GET /list-prices/{id}","title":"Get a list price","href":"/reference/2024-07-30/product/get-a-list-price"},{"openapi":"product.2024-07-30.product.live PUT /list-prices/{id}","title":"Update a list price","href":"/reference/2024-07-30/product/update-a-list-price"},{"openapi":"product.2024-07-30.product.live POST /list-prices/{id}/archive","title":"Archive a list price","href":"/reference/2024-07-30/product/archive-a-list-price"}]}]},{"group":"Quote","pages":[{"group":"Quotes","pages":[{"openapi":"quote.2024-07-30.product.live GET /quotes","title":"List quotes","href":"/reference/2024-07-30/quote/list-quotes"},{"openapi":"quote.2024-07-30.product.live GET /quotes/{id}/download","title":"Download quote PDF","href":"/reference/2024-07-30/quote/download-quote-pdf"},{"openapi":"quote.2024-07-30.product.live POST /quotes/{quoteId}/notify-recipients","title":"Notify selected quote recipients by email","href":"/reference/2024-07-30/quote/notify-selected-quote-recipients-by-email"},{"openapi":"quote.2024-07-30.product.live POST /quotes/{id}/accept","title":"Accept a published Quote","href":"/reference/2024-07-30/quote/accept-a-published-quote"},{"openapi":"quote.2024-07-30.product.live POST /quotes/{id}/publish","title":"Publish a quote","href":"/reference/2024-07-30/quote/publish-a-quote"},{"openapi":"quote.2024-07-30.product.live POST /quotes/{quoteId}/send-reminders","title":"Send reminder emails to all that have not signed.","href":"/reference/2024-07-30/quote/send-reminder-emails-to-all-that-have-not-signed."},{"openapi":"quote.2024-07-30.product.live GET /quotes/{id}","title":"Get one of your quotes","href":"/reference/2024-07-30/quote/get-one-of-your-quotes"},{"openapi":"quote.2024-07-30.product.live PUT /quotes/{id}","title":"Update one of your quotes","href":"/reference/2024-07-30/quote/update-one-of-your-quotes"},{"openapi":"quote.2024-07-30.product.live GET /quotes/{id}/analytics","title":"Get quote analytics","href":"/reference/2024-07-30/quote/get-quote-analytics"},{"openapi":"quote.2024-07-30.product.live POST /quotes/from-template/{id}","title":"Create a quote from a template","href":"/reference/2024-07-30/quote/create-a-quote-from-a-template"},{"openapi":"quote.2024-07-30.product.live POST /quotes/{id}/archive","title":"Archive a quote","href":"/reference/2024-07-30/quote/archive-a-quote"},{"openapi":"quote.2024-07-30.product.live GET /quotes/{id}/published","title":"Get a published quote","href":"/reference/2024-07-30/quote/get-a-published-quote"}]},{"group":"Quote Templates","pages":[{"openapi":"quote.2024-07-30.product.live GET /quote-templates","title":"List quote templates","href":"/reference/2024-07-30/quote/list-quote-templates"}]}]},{"group":"Taxes","pages":[{"group":"Tax Registrations","pages":[{"openapi":"taxes.2024-07-30.product.live GET /tax-registrations/{id}","title":"Get a Tax Registration by ID","href":"/reference/2024-07-30/taxes/get-a-tax-registration-by-id"},{"openapi":"taxes.2024-07-30.product.live PUT /tax-registrations/{id}","title":"Update a Tax Registration","href":"/reference/2024-07-30/taxes/update-a-tax-registration"},{"openapi":"taxes.2024-07-30.product.live DELETE /tax-registrations/{id}","title":"Delete a Tax Registration","href":"/reference/2024-07-30/taxes/delete-a-tax-registration"},{"openapi":"taxes.2024-07-30.product.live GET /tax-registrations","title":"List all Tax Registrations","href":"/reference/2024-07-30/taxes/list-all-tax-registrations"},{"openapi":"taxes.2024-07-30.product.live POST /tax-registrations","title":"Create a new Tax Registration","href":"/reference/2024-07-30/taxes/create-a-new-tax-registration"},{"openapi":"taxes.2024-07-30.product.live GET /tax-registrations/for-customer/{id}","title":"Get all tax registrations for a customer by customer ID","href":"/reference/2024-07-30/taxes/get-all-tax-registrations-for-a-customer-by-customer-id"},{"openapi":"taxes.2024-07-30.product.live GET /tax-registrations/for-merchant/{id}","title":"Get all tax registrations for a merchant by merchant ID","href":"/reference/2024-07-30/taxes/get-all-tax-registrations-for-a-merchant-by-merchant-id"}]},{"group":"Tax Rates","pages":[{"openapi":"taxes.2024-07-30.product.live GET /tax-rates","title":"List all Tax Rates","href":"/reference/2024-07-30/taxes/list-all-tax-rates"},{"openapi":"taxes.2024-07-30.product.live POST /tax-rates","title":"Create a new TaxRate","href":"/reference/2024-07-30/taxes/create-a-new-taxrate"},{"openapi":"taxes.2024-07-30.product.live GET /tax-rates/{id}","title":"Get a Tax Rate by ID","href":"/reference/2024-07-30/taxes/get-a-tax-rate-by-id"},{"openapi":"taxes.2024-07-30.product.live PUT /tax-rates/{id}","title":"Update a TaxRate","href":"/reference/2024-07-30/taxes/update-a-taxrate"},{"openapi":"taxes.2024-07-30.product.live DELETE /tax-rates/{id}","title":"Delete a Tax Rate","href":"/reference/2024-07-30/taxes/delete-a-tax-rate"},{"openapi":"taxes.2024-07-30.product.live POST /tax-rates/{id}/archive","title":"Archive a tax rate","href":"/reference/2024-07-30/taxes/archive-a-tax-rate"}]}]},{"group":"Usage","pages":[{"group":"Usage Events","pages":[{"openapi":"usage.2024-07-30.product.live GET /usage-events","title":"List all Usage Events","href":"/reference/2024-07-30/usage/list-all-usage-events"},{"openapi":"usage.2024-07-30.product.live POST /usage-events","title":"Create a new Usage Event","href":"/reference/2024-07-30/usage/create-a-new-usage-event"}]},{"group":"Seat Metrics","pages":[{"openapi":"usage.2024-07-30.product.live GET /seat-metrics","title":"List all seat metrics","href":"/reference/2024-07-30/usage/list-all-seat-metrics"},{"openapi":"usage.2024-07-30.product.live POST /seat-metrics","title":"Create a seat metric","href":"/reference/2024-07-30/usage/create-a-seat-metric"},{"openapi":"usage.2024-07-30.product.live GET /seat-metrics/{id}","title":"Get a seat metric","href":"/reference/2024-07-30/usage/get-a-seat-metric"},{"openapi":"usage.2024-07-30.product.live PUT /seat-metrics/{id}","title":"Update a seat metric","href":"/reference/2024-07-30/usage/update-a-seat-metric"},{"openapi":"usage.2024-07-30.product.live DELETE /seat-metrics/{id}","title":"Delete a seat metric","href":"/reference/2024-07-30/usage/delete-a-seat-metric"},{"openapi":"usage.2024-07-30.product.live GET /seat-balances","title":"List Seat balances by Customer","href":"/reference/2024-07-30/usage/list-seat-balances-by-customer"}]},{"group":"Seat Events","pages":[{"openapi":"usage.2024-07-30.product.live GET /seat-events","title":"List all seat events","href":"/reference/2024-07-30/usage/list-all-seat-events"},{"openapi":"usage.2024-07-30.product.live POST /seat-events","title":"Create a seat event","href":"/reference/2024-07-30/usage/create-a-seat-event"},{"openapi":"usage.2024-07-30.product.live GET /seat-events/{id}","title":"Get a seat event by ID","href":"/reference/2024-07-30/usage/get-a-seat-event-by-id"}]},{"group":"Usage Metrics","pages":[{"openapi":"usage.2024-07-30.product.live POST /usage-metrics","title":"Create a new Usage Metric","href":"/reference/2024-07-30/usage/create-a-new-usage-metric"},{"openapi":"usage.2024-07-30.product.live GET /usage-metrics","title":"List all Usage Metrics","href":"/reference/2024-07-30/usage/list-all-usage-metrics"},{"openapi":"usage.2024-07-30.product.live GET /usage-metrics/{id}","title":"Get a Usage Metric by ID","href":"/reference/2024-07-30/usage/get-a-usage-metric-by-id"},{"openapi":"usage.2024-07-30.product.live PUT /usage-metrics/{id}","title":"Update a Usage Metric","href":"/reference/2024-07-30/usage/update-a-usage-metric"},{"openapi":"usage.2024-07-30.product.live DELETE /usage-metrics/{id}","title":"Delete a Usage Metric","href":"/reference/2024-07-30/usage/delete-a-usage-metric"},{"openapi":"usage.2024-07-30.product.live GET /usage-metrics/{usageMetricId}/calculate","title":"Calculate usage metric for customer and timeframe","href":"/reference/2024-07-30/usage/calculate-usage-metric-for-customer-and-timeframe"}]}]}]}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/connectors/overview"}]},{"tab":"Security","pages":[{"title":"Security","href":"/compliance/overview"}]},{"tab":"Compare","pages":[{"title":"Compare","href":"/migration/maxio"}]}]},"basePath":"","title":"Set up webhooks - Sequence","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-DW6UFrUy.js","DynamicMarkdown-B62XqCSI.js","zoom-image-lightbox-eHyQ0tlO.js","lightbox-handle-r17bVUz3.js"]}