Authenticate with either a Supabase session (member of the invoice’s organization) or an API key belonging to that same organization. to is optional — if omitted, the recipient is resolved from the Customer registered for the invoice’s RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.
POST
/
invoices
/
{uuid}
/
email
Send the CFDI (XML + PDF) by email to the receptor
Sends the stamped CFDI to the receptor by email, with the XML and PDF attached. Like Cancel Invoice and Download XML, this is a flat route — it does not carry /organizations/{organizationId}/ in the URL. The invoice’s uuid (its folio fiscal, globally unique across all organizations) is enough to resolve the owning organization server-side, combined with the caller’s own auth context (session or API key).If you don’t pass a to address, Timbrix tries to resolve one automatically from the Customer registered in your organization with the invoice’s rfcReceptor. If no such customer exists, or it has no email on file, and you didn’t send to either, the request fails with 400 Bad Request.The email body includes the folio fiscal, series/folio, tipoComprobante, issuer RFC, receptor RFC, and total — the XML and PDF are attached as files.
A Supabase Bearer session (Authorization: Bearer <token>) — the authenticated user must be a member of the invoice’s organization.
An API key (X-API-Key: sk_...) with the write:invoices scope — the key’s own organization must match the invoice’s organization, or the request is rejected with 403 Forbidden.
The authenticated user is not a member of the invoice’s organization, or the API key does not have the write:invoices scope / belongs to a different organization than the one that owns the invoice.
Correo del receptor al que se enviará el CFDI. Si se omite, se usa el correo del Customer registrado con el RFC receptor de la factura (si existe). Si no hay un Customer con correo registrado y tampoco se envía este campo, la solicitud falla con 400.
ID del usuario de la sesión que solicitó el envío. null si se envió con una API key.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Timbrix","colors":{"primary":"#000000","light":"#ffffff","dark":"#000000"},"logo":{"light":"https://mintcdn.com/timbrify/gNpyqvpwohEXPk52/logo/light.svg?fit=max\u0026auto=format\u0026n=gNpyqvpwohEXPk52\u0026q=85\u0026s=83b6a3e733e09f30ee340a5350b73212","dark":"https://mintcdn.com/timbrify/gNpyqvpwohEXPk52/logo/dark.svg?fit=max\u0026auto=format\u0026n=gNpyqvpwohEXPk52\u0026q=85\u0026s=8059165110d142712a6da647732f7527"},"favicon":"https://mintcdn.com/timbrify/4x_Tmgur6hxMQ4iw/favicon.svg?fit=max\u0026auto=format\u0026n=4x_Tmgur6hxMQ4iw\u0026q=85\u0026s=1db2033741049c7d0b55113e5aedb862","navbar":{"links":[{"href":"mailto:hola@timbrix.mx","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://app.timbrix.mx"}},"footer":{"socials":{"x":"https://x.com/timbrix_mx","instagram":"https://www.instagram.com/timbrix.mx","github":"https://github.com/Timbrix","linkedin":"https://www.linkedin.com/company/timbrix"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"timbrify","hasAudioNarration":false,"actualSubdomain":"timbrify","customDomains":["docs.timbrix.mx"],"gitSource":{"type":"github","owner":"timbrix","repo":"timbrix-platform","deployBranch":"main","contentDirectory":"apps/docs","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0ec8378fd3c82fb9de322","collectionId":"1a63869a-ff71-4460-ba51-6db7d0468ebc","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0ec8378fd3c82fb9de322"},"entitlements":{},"buildId":"6ae0ec8378fd3c82fb9de322","clientVersion":"0.0.3990","searchFilterCounts":[{"language":"default","tag":"API reference","count":182},{"language":"default","tag":"Invoices","count":17},{"language":"default","tag":"invoices","count":17},{"language":"default","tag":"organizations","count":16},{"language":"default","tag":"oauth","count":14},{"language":"default","tag":"OAuth","count":11},{"language":"default","tag":"Guides","count":11},{"language":"default","tag":"Organizations","count":10},{"language":"default","tag":"API Keys","count":7},{"language":"default","tag":"Webhooks","count":7}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"editor-v7-file-tree","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":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"editor-agent-model-picker","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/invoices/email","slug":"/api-reference/invoices/email","pageMetadata":{"title":"Email Invoice","openapi":"POST /invoices/{uuid}/email","description":"Authenticate with either a Supabase session (member of the invoice's organization) or an API key belonging to that same organization. `to` is optional — if omitted, the recipient is resolved from the Customer registered for the invoice's RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.","href":"/api-reference/invoices/email"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Authenticate with either a Supabase session (member of the invoice’s organization) or an API key belonging to that same organization. \", _jsx(_components.code, {\n children: \"to\"\n }), \" is optional — if omitted, the recipient is resolved from the Customer registered for the invoice’s RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.\"]\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`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note,Table}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Sends the stamped CFDI to the receptor by email, with the XML and PDF attached. Like `,_jsx(_components.a,{href:`/api-reference/invoices/cancel`,children:`Cancel Invoice`}),` and `,_jsx(_components.a,{href:`/api-reference/invoices/download-xml`,children:`Download XML`}),`, this is a `,_jsx(_components.strong,{children:`flat`}),` route — it does not carry `,_jsx(_components.code,{children:`/organizations/{organizationId}/`}),` in the URL. The invoice’s `,_jsx(_components.code,{children:`uuid`}),` (its folio fiscal, globally unique across all organizations) is enough to resolve the owning organization server-side, combined with the caller’s own auth context (session or API key).`]}),`\n`,_jsxs(_components.p,{children:[`If you don’t pass a `,_jsx(_components.code,{children:`to`}),` address, Timbrix tries to resolve one automatically from the `,_jsx(_components.a,{href:`/api-reference/customers/get`,children:`Customer`}),` registered in your organization with the invoice’s `,_jsx(_components.code,{children:`rfcReceptor`}),`. If no such customer exists, or it has no email on file, and you didn’t send `,_jsx(_components.code,{children:`to`}),` either, the request fails with `,_jsx(_components.code,{children:`400 Bad Request`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`The email body includes the folio fiscal, series/folio, `,_jsx(_components.code,{children:`tipoComprobante`}),`, issuer RFC, receptor RFC, and total — the XML and PDF are attached as files.`]}),`\n`,_jsx(Heading,{level:`2`,id:`authentication`,children:`Authentication`}),`\n`,_jsxs(_components.p,{children:[`Accepts `,_jsx(_components.strong,{children:`either`}),`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A Supabase Bearer session (`,_jsx(_components.code,{children:`Authorization: Bearer \u003ctoken>`}),`) — the authenticated user must be a member of the invoice’s organization.`]}),`\n`,_jsxs(_components.li,{children:[`An API key (`,_jsx(_components.code,{children:`X-API-Key: sk_...`}),`) with the `,_jsx(_components.code,{children:`write:invoices`}),` scope — the key’s own organization must match the invoice’s organization, or the request is rejected with `,_jsx(_components.code,{children:`403 Forbidden`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`path-parameters`,children:`Path Parameters`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Parameter`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`uuid`})}),_jsx(_components.td,{children:`string (UUID)`}),_jsx(_components.td,{children:`Yes`}),_jsxs(_components.td,{children:[`Folio fiscal UUID (`,_jsx(_components.code,{children:`uuidFiscal`}),`) of the invoice to send — globally unique, not scoped to an organization`]})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`request-body`,children:`Request Body`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Required`}),_jsx(_components.th,{children:`Description`})]})}),_jsx(_components.tbody,{children:_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`to`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`No`}),_jsxs(_components.td,{children:[`Destination email address. If omitted, Timbrix resolves it from the Customer matching the invoice’s `,_jsx(_components.code,{children:`rfcReceptor`}),` in your organization`]})]})})]}),`\n`,_jsx(Heading,{level:`2`,id:`example-request`,children:`Example Request`}),`\n`,_jsx(CodeBlock,{filename:`cURL`,numberOfLines:`6`,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:`6`,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:` -X`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` POST`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://api.timbrix.mx/invoices/d3bfbc57-44af-4390-a064-f0afab85e5df/email`}),_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:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer \u003cyour_token>\"`}),_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:` -H`}),_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:` -d`}),_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:` \"to\": \"contabilidad@cliente.com\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` }'`})}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:`TypeScript SDK`,numberOfLines:`5`,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:`5`,children:[_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:` result`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` =`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#C586C0`},children:` await`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:` timbrix`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`invoices`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`sendEmail`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`(`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"d3bfbc57-44af-4390-a064-f0afab85e5df\"`}),_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`to:`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"contabilidad@cliente.com\"`}),_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`,_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:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`result`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`.`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#9CDCFE`},children:`status`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`)`})]}),`\n`]})})}),`\n`,_jsx(CodeBlock,{filename:`CLI`,numberOfLines:`1`,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:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`timbrix`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` invoices`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` email`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` d3bfbc57-44af-4390-a064-f0afab85e5df`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --to`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` contabilidad@cliente.com`})]}),`\n`]})})}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`to`}),` is optional in every client — omit it to let Timbrix resolve the\nreceptor’s email from the matching Customer record instead.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`example-response`,children:`Example Response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`8`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`8`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"6a1b2c3d-4e5f-4890-9abc-def012345678\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"invoiceId\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"0f2a1c3e-1a2b-4c3d-9e8f-1234567890ab\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sentTo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"contabilidad@cliente.com\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"sent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sentBy\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"9f8e7d6c-5b4a-3210-fedc-ba9876543210\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"createdAt\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-08-09T15:50:03.412Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Field`}),_jsx(_components.th,{children:`Type`}),_jsx(_components.th,{children:`Description`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`id`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Email send record ID`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`invoiceId`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`Timbrix invoice record ID (not the folio fiscal UUID)`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sentTo`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[`Resolved destination address — either the `,_jsx(_components.code,{children:`to`}),` you sent or the Customer’s email`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`status`})}),_jsx(_components.td,{children:`string`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`sent`}),` or `,_jsx(_components.code,{children:`failed`})]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`sentBy`})}),_jsx(_components.td,{children:`string | null`}),_jsxs(_components.td,{children:[`Timbrix user ID who triggered the send — `,_jsx(_components.code,{children:`null`}),` for API-key-authenticated calls`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:_jsx(_components.code,{children:`createdAt`})}),_jsx(_components.td,{children:`string`}),_jsx(_components.td,{children:`ISO 8601 timestamp the send was recorded`})]})]})]}),`\n`,_jsx(Heading,{level:`2`,id:`common-errors`,children:`Common Errors`}),`\n`,_jsx(Heading,{level:`3`,id:`400-bad-request`,children:`400 Bad Request`}),`\n`,_jsxs(_components.p,{children:[`No `,_jsx(_components.code,{children:`to`}),` was sent and no email could be resolved from a Customer matching the invoice’s `,_jsx(_components.code,{children:`rfcReceptor`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"statusCode\"`}),_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:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"No se encontró un correo del receptor; especifica el campo 'to'\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"BAD_REQUEST\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`3`,id:`401-unauthorized`,children:`401 Unauthorized`}),`\n`,_jsx(_components.p,{children:`Missing or invalid Bearer token / API key.`}),`\n`,_jsx(Heading,{level:`3`,id:`403-forbidden`,children:`403 Forbidden`}),`\n`,_jsxs(_components.p,{children:[`The authenticated user is not a member of the invoice’s organization, or the API key does not have the `,_jsx(_components.code,{children:`write:invoices`}),` scope / belongs to a different organization than the one that owns the invoice.`]}),`\n`,_jsx(Heading,{level:`3`,id:`404-not-found`,children:`404 Not Found`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`uuid`}),` does not match any invoice, or does not belong to the caller’s organization.`]}),`\n`,_jsx(Heading,{level:`3`,id:`503-service-unavailable`,children:`503 Service Unavailable`}),`\n`,_jsx(_components.p,{children:`Sending the email failed after retries.`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`5`,language:`json`,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:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`5`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"statusCode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`503`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"message\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"No se pudo enviar el correo del CFDI, intenta de nuevo más tarde\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"error\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"INVOICE_EMAIL_SEND_FAILED\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})]})}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":"Email Invoice","openapi":"POST /invoices/{uuid}/email","description":"Authenticate with either a Supabase session (member of the invoice's organization) or an API key belonging to that same organization. `to` is optional — if omitted, the recipient is resolved from the Customer registered for the invoice's RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.","href":"/api-reference/invoices/email"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Authentication","slug":"authentication","depth":2,"children":[]},{"title":"Path Parameters","slug":"path-parameters","depth":2,"children":[]},{"title":"Request Body","slug":"request-body","depth":2,"children":[]},{"title":"Example Request","slug":"example-request","depth":2,"children":[]},{"title":"Example Response","slug":"example-response","depth":2,"children":[]},{"title":"Common Errors","slug":"common-errors","depth":2,"children":[{"title":"400 Bad Request","slug":"400-bad-request","depth":3,"children":[]},{"title":"401 Unauthorized","slug":"401-unauthorized","depth":3,"children":[]},{"title":"403 Forbidden","slug":"403-forbidden","depth":3,"children":[]},{"title":"404 Not Found","slug":"404-not-found","depth":3,"children":[]},{"title":"503 Service Unavailable","slug":"503-service-unavailable","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Authenticate with either a Supabase session (member of the invoice's organization) or an API key belonging to that same organization. `to` is optional — if omitted, the recipient is resolved from the Customer registered for the invoice's RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.","operationId":"InvoicesController_sendEmail","parameters":["1cbfe79f-becd-405f-a3cd-00a8ec5c72cb"],"requestBody":"9df95f61-e686-44e7-a66e-281c874bd4a4","responses":{"201":"077a005f-4abc-46ab-8920-f4aee18a68a4","400":"0ec1b429-8446-4eeb-bdd3-79c38c23e2a3","403":"4c2b00be-64a1-4963-aac8-324949aa0570","404":"62df6cd4-4be0-4e9b-b9ef-1dc694d28451","503":"8668c541-a621-440f-bbb7-b4f3eff5255c"},"security":["998018d5-e23e-4a2e-a8b9-a1502981b56b","423c2d39-bd7c-4154-b876-6f4db9d414e8"],"summary":"Send the CFDI (XML + PDF) by email to the receptor","tags":["invoices"],"method":"post","type":"path","servers":[],"path":"/invoices/{uuid}/email","baseUrlOptions":[],"title":"Send the CFDI (XML + PDF) by email to the receptor","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1cbfe79f-becd-405f-a3cd-00a8ec5c72cb":{"name":"uuid","required":true,"in":"path","schema":{"type":"string","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","example":"cliente@example.com","description":"Correo del receptor al que se enviará el CFDI. Si se omite, se usa el correo del Customer registrado con el RFC receptor de la factura (si existe). Si no hay un Customer con correo registrado y tampoco se envía este campo, la solicitud falla con 400.","uniqueKey":"to","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"to":"cliente@example.com"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"077a005f-4abc-46ab-8920-f4aee18a68a4":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"invoiceId":{"type":"string","isRequired":true,"uniqueKey":"invoiceId","typeLabel":"string"},"sentTo":{"type":"string","example":"cliente@example.com","isRequired":true,"uniqueKey":"sentTo","typeLabel":"string"},"status":{"type":"string","enum":["sent","failed"],"isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"createdAt":{"format":"date-time","type":"string","isRequired":true,"uniqueKey":"createdAt","typeLabel":"string\u003cdate-time>"},"sentBy":{"type":"object","description":"ID del usuario de la sesión que solicitó el envío. `null` si se envió con una API key.","uniqueKey":"sentBy","typeLabel":"object"}},"required":["id","invoiceId","sentTo","status","createdAt"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":"\u003cstring>","invoiceId":"\u003cstring>","sentTo":"cliente@example.com","status":"sent","createdAt":"2023-11-07T05:31:56Z","sentBy":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"0ec1b429-8446-4eeb-bdd3-79c38c23e2a3":{"description":"No recipient email available (no matching Customer, or Customer has no email) and `to` was not provided","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"4c2b00be-64a1-4963-aac8-324949aa0570":{"description":"Caller does not belong to the invoice's organization","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"62df6cd4-4be0-4e9b-b9ef-1dc694d28451":{"description":"uuid does not match any invoice","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"8668c541-a621-440f-bbb7-b4f3eff5255c":{"description":"Email provider unavailable after automatic retries","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"998018d5-e23e-4a2e-a8b9-a1502981b56b":{"apiKey":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API Key for authentication (format: sk_...)","scopes":[],"schemeName":"apiKey"}},"423c2d39-bd7c-4154-b876-6f4db9d414e8":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http","scopes":[],"schemeName":"bearer"}}},"servers":{},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"X-API-Key","description":"API Key for authentication (format: sk_...)","scopes":[],"schemeName":"apiKey"},"schema":{"title":"X-API-Key","type":"string","description":"API Key for authentication (format: sk_...)","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"apiKey","name":"X-API-Key"}],"title":"apiKey"},{"schemes":[{"scheme":{"scheme":"bearer","bearerFormat":"JWT","type":"http","scopes":[],"schemeName":"bearer"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearer","name":"Authorization"}],"title":"bearer"}]},"originalFileLocation":"https://api.timbrix.mx/api/openapi.json"},"subdomain":"timbrify","siteName":"Timbrix","title":"Email Invoice - Timbrix","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-08T22:57:16.955Z","originalFileLocation":"api-reference/invoices/email.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=\"Authenticate with either a Supabase session (member of the invoice\u0026#x27;s organization) or an API key belonging to that same organization. to is optional — if omitted, the recipient is resolved from the Customer registered for the invoice\u0026#x27;s RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Timbrix\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/timbrify/iZomOVb_tfgoSMHM/_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/timbrify/iZomOVb_tfgoSMHM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/timbrify/iZomOVb_tfgoSMHM/_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/timbrify/iZomOVb_tfgoSMHM/_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/timbrify/iZomOVb_tfgoSMHM/_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/timbrify/iZomOVb_tfgoSMHM/_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/timbrify/iZomOVb_tfgoSMHM/_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/timbrify/iZomOVb_tfgoSMHM/_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/timbrify/iZomOVb_tfgoSMHM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Email Invoice - Timbrix\">\u003cmeta data-mint-head property=\"og:description\" content=\"Authenticate with either a Supabase session (member of the invoice\u0026#x27;s organization) or an API key belonging to that same organization. to is optional — if omitted, the recipient is resolved from the Customer registered for the invoice\u0026#x27;s RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Timbrix\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.timbrix.mx/api-reference/invoices/email\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://timbrify.mintlify.app/_mintlify/api/og/v2?division=Invoices\u0026amp;title=Email+Invoice\u0026amp;description=Authenticate+with+either+a+Supabase+session+%28member+of+the+invoice%27s+organization%29+or+an+API+key+belonging+to+that+same+organization.+%60to%60+is+optional+%E2%80%94+if+omit\u0026amp;theme=a2364e9aac28dc70f6942386\u0026amp;signature=dae0fe16c42dfc97c9e7f2d4dd5395b0aca30da35f309d23bcc157496ad6a254\">\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=\"Email Invoice - Timbrix\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Authenticate with either a Supabase session (member of the invoice\u0026#x27;s organization) or an API key belonging to that same organization. to is optional — if omitted, the recipient is resolved from the Customer registered for the invoice\u0026#x27;s RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://timbrify.mintlify.app/_mintlify/api/og/v2?division=Invoices\u0026amp;title=Email+Invoice\u0026amp;description=Authenticate+with+either+a+Supabase+session+%28member+of+the+invoice%27s+organization%29+or+an+API+key+belonging+to+that+same+organization.+%60to%60+is+optional+%E2%80%94+if+omit\u0026amp;theme=a2364e9aac28dc70f6942386\u0026amp;signature=dae0fe16c42dfc97c9e7f2d4dd5395b0aca30da35f309d23bcc157496ad6a254\">\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/timbrify/iZomOVb_tfgoSMHM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Timbrix\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.timbrix.mx/api-reference/invoices/email\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/invoices/email.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.timbrix.mx/#organization\",\"name\":\"Timbrix\",\"url\":\"https://docs.timbrix.mx\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/timbrify/gNpyqvpwohEXPk52/logo/light.svg?fit=max\u0026auto=format\u0026n=gNpyqvpwohEXPk52\u0026q=85\u0026s=83b6a3e733e09f30ee340a5350b73212\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.timbrix.mx#website\",\"name\":\"Timbrix\",\"url\":\"https://docs.timbrix.mx\",\"publisher\":{\"@id\":\"https://docs.timbrix.mx/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.timbrix.mx/api-reference/invoices/email#webpage\",\"url\":\"https://docs.timbrix.mx/api-reference/invoices/email\",\"name\":\"Email Invoice\",\"description\":\"Authenticate with either a Supabase session (member of the invoice's organization) or an API key belonging to that same organization. to is optional — if omitted, the recipient is resolved from the Customer registered for the invoice's RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.\",\"dateModified\":\"2026-09-08T22:57:16.955Z\",\"isPartOf\":{\"@id\":\"https://docs.timbrix.mx#website\"},\"breadcrumb\":{\"@id\":\"https://docs.timbrix.mx/api-reference/invoices/email#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.timbrix.mx/api-reference/invoices/email#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Invoices\",\"item\":\"https://docs.timbrix.mx/api-reference/invoices/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Email Invoice\",\"item\":\"https://docs.timbrix.mx/api-reference/invoices/email\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.timbrix.mx/api-reference/invoices/email#apireference\",\"headline\":\"Email Invoice\",\"name\":\"Email Invoice\",\"description\":\"Authenticate with either a Supabase session (member of the invoice's organization) or an API key belonging to that same organization. to is optional — if omitted, the recipient is resolved from the Customer registered for the invoice's RFC receptor (if it has an email on file). Retries automatically against the email provider before failing.\",\"url\":\"https://docs.timbrix.mx/api-reference/invoices/email\",\"mainEntityOfPage\":{\"@id\":\"https://docs.timbrix.mx/api-reference/invoices/email#webpage\"},\"dateModified\":\"2026-09-08T22:57:16.955Z\",\"publisher\":{\"@id\":\"https://docs.timbrix.mx/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.timbrix.mx#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Timbrix\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Timbrix","nav":{"global":null,"tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":""}]},{"tab":"Agentes de IA","pages":[{"title":"Agentes de IA","href":"/ai-agents"}]},{"tab":"API reference","groups":[{"group":"API documentation","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Organizations","pages":[{"title":"Create Organization","openapi":"POST /organizations","href":"/api-reference/organizations/create"},{"title":"Get Organization","openapi":"GET /organizations/{id}","href":"/api-reference/organizations/get"},{"title":"Update Organization","openapi":"PUT /organizations/{id}","href":"/api-reference/organizations/update"},{"title":"Update Legal Data","api":"PUT /organizations/{id}/legal","href":"/api-reference/organizations/update-legal-data"},{"title":"Upload Certificates","api":"PUT /organizations/{id}/certificates","href":"/api-reference/organizations/upload-certificates"},{"title":"Delete Certificates","api":"DELETE /organizations/{id}/certificates","href":"/api-reference/organizations/delete-certificates"},{"title":"Close Preview","openapi":"GET /organizations/{id}/close-preview","href":"/api-reference/organizations/close-preview"},{"title":"Delete Organization","openapi":"DELETE /organizations/{id}","href":"/api-reference/organizations/delete"},{"title":"Reopen Organization","openapi":"POST /organizations/{id}/reopen","href":"/api-reference/organizations/reopen"},{"title":"Transfer Ownership","openapi":"POST /organizations/{id}/transfer-ownership","href":"/api-reference/organizations/transfer-ownership"}]},{"group":"Members","pages":[{"title":"List Members","openapi":"GET /organizations/{id}/members","href":"/api-reference/members/list"},{"title":"Invite Member","openapi":"POST /organizations/{id}/members/invite","href":"/api-reference/members/invite"},{"title":"Update Member Role","openapi":"PUT /organizations/{id}/members/{memberId}/role","href":"/api-reference/members/update-role"},{"title":"Remove Member","openapi":"DELETE /organizations/{id}/members/{memberId}","href":"/api-reference/members/remove"}]},{"group":"Invites","pages":[{"title":"List Invites","openapi":"GET /organizations/{id}/invites","href":"/api-reference/invites/list"},{"title":"Cancel Invite","openapi":"DELETE /organizations/{id}/invites/{inviteId}","href":"/api-reference/invites/cancel"}]},{"group":"Auth","pages":[{"title":"Login","openapi":"POST /auth/login","href":"/api-reference/auth/login"},{"title":"Logout","openapi":"POST /auth/logout","href":"/api-reference/auth/logout"}]},{"group":"OAuth","pages":[{"title":"Create OAuth Application","openapi":"POST /oauth/apps","href":"/api-reference/oauth/create-app"},{"title":"List OAuth Applications","openapi":"GET /oauth/apps/organization/{organizationId}","href":"/api-reference/oauth/list-apps"},{"title":"Get OAuth Application","openapi":"GET /oauth/apps/{clientId}","href":"/api-reference/oauth/get-app"},{"title":"Update OAuth Application","openapi":"PUT /oauth/apps/{clientId}","href":"/api-reference/oauth/update-app"},{"title":"Delete OAuth Application","openapi":"DELETE /oauth/apps/{clientId}","href":"/api-reference/oauth/delete-app"},{"title":"Authorization Endpoint","openapi":"GET /oauth/authorize","href":"/api-reference/oauth/authorize"},{"title":"Generate OAuth Access Token","openapi":"POST /oauth/token","href":"/api-reference/oauth/token"},{"title":"Exchange Authorization Code","openapi":"POST /oauth/token/exchange","href":"/api-reference/oauth/exchange"},{"title":"Refresh OAuth Token","openapi":"POST /oauth/token/refresh","href":"/api-reference/oauth/refresh"},{"title":"List OAuth Tokens","openapi":"GET /oauth/apps/{clientId}/tokens","href":"/api-reference/oauth/list-tokens"},{"title":"Revoke OAuth Token","openapi":"DELETE /oauth/token/{tokenId}","href":"/api-reference/oauth/revoke"}]},{"group":"Customers","pages":[{"title":"List Customers","openapi":"GET /customers","href":"/api-reference/customers/list"},{"title":"Create Customer","openapi":"POST /customers","href":"/api-reference/customers/create"},{"title":"Get Customer","openapi":"GET /customers/{customerId}","href":"/api-reference/customers/get"},{"title":"Update Customer","openapi":"PUT /customers/{customerId}","href":"/api-reference/customers/update"},{"title":"Delete Customer","openapi":"DELETE /customers/{customerId}","href":"/api-reference/customers/delete"}]},{"group":"SAT Catalogs","pages":[{"title":"SAT Catalogs","href":"/api-reference/sat-catalogs"}]},{"group":"Invoices","pages":[{"title":"List Invoices","openapi":"GET /invoices","href":"/api-reference/invoices/list"},{"title":"Get Invoice","openapi":"GET /invoices/{uuid}","href":"/api-reference/invoices/get"},{"title":"Download Invoice XML","openapi":"GET /invoices/{uuid}/xml","href":"/api-reference/invoices/download-xml"},{"title":"Download Invoice PDF","openapi":"GET /invoices/{uuid}/pdf","href":"/api-reference/invoices/download-pdf"},{"title":"Create Invoice","openapi":"POST /invoices","href":"/api-reference/invoices/create"},{"title":"Register Payment (Complemento de Pago)","openapi":"POST /invoices/payments","href":"/api-reference/invoices/register-payment"},{"title":"Get Payments","openapi":"GET /invoices/{uuid}/payments","href":"/api-reference/invoices/get-payments"},{"title":"Preview Invoice PDF","openapi":"POST /invoices/preview/pdf","href":"/api-reference/invoices/preview-pdf"},{"title":"Cancel Invoice","openapi":"POST /invoices/{uuid}/cancel","href":"/api-reference/invoices/cancel"},{"title":"Resolve Cancellation","openapi":"POST /invoices/{uuid}/cancellations/{cancellationId}/resolve","href":"/api-reference/invoices/resolve-cancellation"},{"title":"List Invoice Cancellations","openapi":"GET /invoices/{uuid}/cancellations","description":null,"href":"/api-reference/invoices/list-cancellations"},{"title":"Email Invoice","openapi":"POST /invoices/{uuid}/email","href":"/api-reference/invoices/email"},{"title":"Get CFDI Usage","openapi":"GET /usage","description":"Authenticate with either a Supabase session (send the `X-Organization-Id` header) or an API key (external integrations, requires the `read:invoices` scope). Returns how many CFDI the organization has stamped this calendar month (Mexico City time) against its plan's included quota. `cfdiIncluded`/`cfdiRemaining` are `null` for the enterprise plan (unlimited).","href":"/api-reference/invoices/usage"},{"title":"Get Invoice Report Summary","openapi":"GET /invoices/report/summary","href":"/api-reference/invoices/report-summary"},{"title":"Export Invoices as CSV","openapi":"GET /invoices/report/export.csv","href":"/api-reference/invoices/export-csv"},{"title":"Export Invoices as XML ZIP","openapi":"GET /invoices/report/export/xml.zip","href":"/api-reference/invoices/export-xml"},{"title":"Export Invoices as PDF ZIP","openapi":"GET /invoices/report/export/pdf.zip","href":"/api-reference/invoices/export-pdf"}]},{"group":"Request logs","pages":[{"title":"List Request Logs","openapi":"GET /request-logs","href":"/api-reference/request-logs/list"},{"title":"Request stats","openapi":"GET /request-logs/stats","href":"/api-reference/request-logs/stats"},{"title":"Get Request Log","openapi":"GET /request-logs/{id}","href":"/api-reference/request-logs/get"}]},{"group":"Products","pages":[{"title":"List Products","openapi":"GET /products","href":"/api-reference/products/list"},{"title":"Create Product","openapi":"POST /products","href":"/api-reference/products/create"},{"title":"Import Products from CSV","openapi":"POST /products/import","href":"/api-reference/products/import"},{"title":"Get Product","openapi":"GET /products/{productId}","href":"/api-reference/products/get"},{"title":"Update Product","openapi":"PUT /products/{productId}","href":"/api-reference/products/update"},{"title":"Delete Product","openapi":"DELETE /products/{productId}","href":"/api-reference/products/delete"}]},{"group":"Users","pages":[{"title":"Get Current User","openapi":"GET /users/me","href":"/api-reference/users/me"},{"title":"Get User by ID","openapi":"GET /users/{id}","href":"/api-reference/users/get"},{"title":"Get User by Email","openapi":"GET /users/email/{email}","href":"/api-reference/users/get-by-email"},{"title":"Get User Organizations","openapi":"GET /users/{id}/organizations","href":"/api-reference/users/organizations"},{"title":"Delete My Account","openapi":"DELETE /users/me","href":"/api-reference/users/delete-me"}]},{"group":"Webhooks","pages":[{"title":"List Organization Webhooks","openapi":"GET /organizations/{organizationId}/webhooks","href":"/api-reference/webhooks/list"},{"title":"Create Webhook","openapi":"POST /organizations/{organizationId}/webhooks","href":"/api-reference/webhooks/create"},{"title":"Get Webhook by ID","openapi":"GET /organizations/{organizationId}/webhooks/{id}","href":"/api-reference/webhooks/get"},{"title":"Update Webhook","openapi":"PUT /organizations/{organizationId}/webhooks/{id}","href":"/api-reference/webhooks/update"},{"title":"Delete Webhook","openapi":"DELETE /organizations/{organizationId}/webhooks/{id}","href":"/api-reference/webhooks/delete"},{"title":"Get Webhook Delivery History","openapi":"GET /organizations/{organizationId}/webhooks/{id}/deliveries","href":"/api-reference/webhooks/deliveries"},{"title":"Send Test Webhook","openapi":"POST /organizations/{organizationId}/webhooks/{id}/test","href":"/api-reference/webhooks/test"}]},{"group":"Series","pages":[{"title":"List Series","openapi":"GET /organizations/{organizationId}/series","href":"/api-reference/series/list"},{"title":"Create Series","openapi":"POST /organizations/{organizationId}/series","href":"/api-reference/series/create"},{"title":"Update Series","openapi":"PUT /organizations/{organizationId}/series/{series}","href":"/api-reference/series/update"},{"title":"Delete Series","openapi":"DELETE /organizations/{organizationId}/series/{series}","href":"/api-reference/series/delete"},{"title":"Set Default Series","openapi":"PUT /organizations/{organizationId}/default-series","href":"/api-reference/series/set-default"}]},{"group":"API Keys","pages":[{"title":"List API Keys","openapi":"GET /organizations/{organizationId}/api-keys","href":"/api-reference/api-keys/list"},{"title":"Create API Key","openapi":"POST /organizations/{organizationId}/api-keys","href":"/api-reference/api-keys/create"},{"title":"Get API Key","openapi":"GET /organizations/{organizationId}/api-keys/{id}","href":"/api-reference/api-keys/get"},{"title":"Update API Key","openapi":"PUT /organizations/{organizationId}/api-keys/{id}","href":"/api-reference/api-keys/update"},{"title":"Delete API Key","openapi":"DELETE /organizations/{organizationId}/api-keys/{id}","href":"/api-reference/api-keys/delete"},{"title":"Get API Key Statistics","openapi":"GET /organizations/{organizationId}/api-keys/stats","href":"/api-reference/api-keys/stats"},{"title":"Validate API Key","openapi":"POST /api-keys/validate","href":"/api-reference/api-keys/validate"}]},{"group":"organizations","pages":[{"title":"Create a new organization","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations","href":"/api-reference/organizations/create-a-new-organization"},{"title":"Validate CSD certificate and optionally verify private key password","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/certificates/validate","href":"/api-reference/organizations/validate-csd-certificate-and-optionally-verify-private-key-password"},{"title":"Get organization by ID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{id}","href":"/api-reference/organizations/get-organization-by-id"},{"title":"Update organization (owner only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /organizations/{id}","href":"/api-reference/organizations/update-organization-owner-only"},{"title":"Delete or close organization (owner only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /organizations/{id}","href":"/api-reference/organizations/delete-or-close-organization-owner-only"},{"title":"Update organization legal/fiscal data (owner only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /organizations/{id}/legal","href":"/api-reference/organizations/update-organization-legalfiscal-data-owner-only"},{"title":"Upload CSD certificate (owner only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /organizations/{id}/certificates","href":"/api-reference/organizations/upload-csd-certificate-owner-only"},{"title":"Delete CSD certificates (owner only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /organizations/{id}/certificates","href":"/api-reference/organizations/delete-csd-certificates-owner-only"},{"title":"Preview deleting or closing the organization (owner only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{id}/close-preview","href":"/api-reference/organizations/preview-deleting-or-closing-the-organization-owner-only"},{"title":"Reopen a closed organization (owner only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/{id}/reopen","href":"/api-reference/organizations/reopen-a-closed-organization-owner-only"},{"title":"Get organization members","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{id}/members","href":"/api-reference/organizations/get-organization-members"},{"title":"Invite a member (owner/admin only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/{id}/members/invite","href":"/api-reference/organizations/invite-a-member-owneradmin-only"},{"title":"Remove a member (owner/admin only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /organizations/{id}/members/{memberId}","href":"/api-reference/organizations/remove-a-member-owneradmin-only"},{"title":"Update member role (owner/admin only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /organizations/{id}/members/{memberId}/role","href":"/api-reference/organizations/update-member-role-owneradmin-only"},{"title":"Get pending invitations","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{id}/invites","href":"/api-reference/organizations/get-pending-invitations"},{"title":"Cancel an invitation (owner/admin only)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /organizations/{id}/invites/{inviteId}","href":"/api-reference/organizations/cancel-an-invitation-owneradmin-only"}]},{"group":"users","pages":[{"title":"Get current authenticated user","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /users/me","href":"/api-reference/users/get-current-authenticated-user"},{"title":"Get user by ID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /users/{id}","href":"/api-reference/users/get-user-by-id"},{"title":"Get user organizations","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /users/{id}/organizations","href":"/api-reference/users/get-user-organizations"},{"title":"Get user by email","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /users/email/{email}","href":"/api-reference/users/get-user-by-email"}]},{"group":"api-keys","pages":[{"title":"List organization API keys","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/api-keys","href":"/api-reference/api-keys/list-organization-api-keys"},{"title":"Create API key","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/{organizationId}/api-keys","href":"/api-reference/api-keys/create-api-key"},{"title":"Get API key statistics","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/api-keys/stats","href":"/api-reference/api-keys/get-api-key-statistics"},{"title":"Get API key by ID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/api-keys/{id}","href":"/api-reference/api-keys/get-api-key-by-id"},{"title":"Update API key","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /organizations/{organizationId}/api-keys/{id}","href":"/api-reference/api-keys/update-api-key"},{"title":"Delete API key","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /organizations/{organizationId}/api-keys/{id}","href":"/api-reference/api-keys/delete-api-key"},{"title":"Validate API key","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /api-keys/validate","href":"/api-reference/api-keys/validate-api-key"}]},{"group":"oauth","pages":[{"title":"Create a new OAuth application","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /oauth/apps","href":"/api-reference/oauth/create-a-new-oauth-application"},{"title":"Get OAuth application by client ID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /oauth/apps/{clientId}","href":"/api-reference/oauth/get-oauth-application-by-client-id"},{"title":"Update OAuth application","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /oauth/apps/{clientId}","href":"/api-reference/oauth/update-oauth-application"},{"title":"Delete OAuth application","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /oauth/apps/{clientId}","href":"/api-reference/oauth/delete-oauth-application"},{"title":"List OAuth applications for organization","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /oauth/apps/organization/{organizationId}","href":"/api-reference/oauth/list-oauth-applications-for-organization"},{"title":"Generate OAuth access token","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /oauth/token","href":"/api-reference/oauth/generate-oauth-access-token"},{"title":"OAuth2 Authorization Endpoint (redirects to consent screen)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /oauth/authorize","href":"/api-reference/oauth/oauth2-authorization-endpoint-redirects-to-consent-screen"},{"title":"Get authorization details for consent screen","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /oauth/authorize/details","href":"/api-reference/oauth/get-authorization-details-for-consent-screen"},{"title":"Approve authorization and generate code","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /oauth/authorize/approve","href":"/api-reference/oauth/approve-authorization-and-generate-code"},{"title":"Deny authorization request","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /oauth/authorize/deny","href":"/api-reference/oauth/deny-authorization-request"},{"title":"Exchange authorization code for access token","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /oauth/token/exchange","href":"/api-reference/oauth/exchange-authorization-code-for-access-token"},{"title":"Refresh OAuth access token","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /oauth/token/refresh","href":"/api-reference/oauth/refresh-oauth-access-token"},{"title":"Revoke access token","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /oauth/token/{tokenId}","href":"/api-reference/oauth/revoke-access-token"},{"title":"List tokens for OAuth application","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /oauth/apps/{clientId}/tokens","href":"/api-reference/oauth/list-tokens-for-oauth-application"}]},{"group":"monitoring","pages":[{"title":"Health check endpoint","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /health","href":"/api-reference/monitoring/health-check-endpoint"},{"title":"Readiness check","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /health/ready","href":"/api-reference/monitoring/readiness-check"},{"title":"Liveness check","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /health/live","href":"/api-reference/monitoring/liveness-check"},{"title":"Sandbox PAC reachability","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /health/pac-sandbox","href":"/api-reference/monitoring/sandbox-pac-reachability"}]},{"group":"auth","pages":[{"title":"Iniciar sesión con email y contraseña","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /auth/login","href":"/api-reference/auth/iniciar-sesión-con-email-y-contraseña"},{"title":"Cerrar sesión","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /auth/logout","href":"/api-reference/auth/cerrar-sesión"}]},{"group":"customers","pages":[{"title":"List customers for an organization","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /customers","href":"/api-reference/customers/list-customers-for-an-organization"},{"title":"Create a customer","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /customers","href":"/api-reference/customers/create-a-customer"},{"title":"Get a customer by ID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /customers/{customerId}","href":"/api-reference/customers/get-a-customer-by-id"},{"title":"Update a customer","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /customers/{customerId}","href":"/api-reference/customers/update-a-customer"},{"title":"Delete a customer","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /customers/{customerId}","href":"/api-reference/customers/delete-a-customer"}]},{"group":"products","pages":[{"title":"List products for an organization","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /products","href":"/api-reference/products/list-products-for-an-organization"},{"title":"Create a product or service","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /products","href":"/api-reference/products/create-a-product-or-service"},{"title":"Bulk import products/services from a CSV file","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /products/import","href":"/api-reference/products/bulk-import-productsservices-from-a-csv-file"},{"title":"Get a product by ID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /products/{productId}","href":"/api-reference/products/get-a-product-by-id"},{"title":"Update a product","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /products/{productId}","href":"/api-reference/products/update-a-product"},{"title":"Delete a product","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /products/{productId}","href":"/api-reference/products/delete-a-product"}]},{"group":"sat","pages":[{"title":"Listar regímenes fiscales SAT (c_RegimenFiscal)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /sat/regimenes-fiscales","href":"/api-reference/sat/listar-regímenes-fiscales-sat-c_regimenfiscal"},{"title":"Listar usos de CFDI SAT (c_UsoCFDI)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /sat/usos-cfdi","href":"/api-reference/sat/listar-usos-de-cfdi-sat-c_usocfdi"},{"title":"Buscar claves de producto o servicio SAT (c_ClaveProdServ)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /sat/claves-prod-serv","href":"/api-reference/sat/buscar-claves-de-producto-o-servicio-sat-c_claveprodserv"},{"title":"Buscar claves de unidad de medida SAT (c_ClaveUnidad)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /sat/claves-unidad","href":"/api-reference/sat/buscar-claves-de-unidad-de-medida-sat-c_claveunidad"}]},{"group":"webhooks","pages":[{"title":"List organization webhooks","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/webhooks","href":"/api-reference/webhooks/list-organization-webhooks"},{"title":"Create a new webhook","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/{organizationId}/webhooks","href":"/api-reference/webhooks/create-a-new-webhook"},{"title":"Get webhook by ID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/webhooks/{id}","href":"/api-reference/webhooks/get-webhook-by-id"},{"title":"Update webhook","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json put /organizations/{organizationId}/webhooks/{id}","href":"/api-reference/webhooks/update-webhook"},{"title":"Delete webhook","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json delete /organizations/{organizationId}/webhooks/{id}","href":"/api-reference/webhooks/delete-webhook"},{"title":"Get webhook delivery history","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/webhooks/{id}/deliveries","href":"/api-reference/webhooks/get-webhook-delivery-history"},{"title":"Send test webhook","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/{organizationId}/webhooks/{id}/test","href":"/api-reference/webhooks/send-test-webhook"}]},{"group":"invoices","pages":[{"title":"List invoices for the organization","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices","href":"/api-reference/invoices/list-invoices-for-the-organization"},{"title":"Create and stamp a CFDI 4.0 invoice via the configured PAC","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /invoices","href":"/api-reference/invoices/create-and-stamp-a-cfdi-40-invoice-via-the-configured-pac"},{"title":"Register a payment of PPD invoices and stamp its Complemento de Pago (CFDI tipo P)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /invoices/payments","href":"/api-reference/invoices/register-a-payment-of-ppd-invoices-and-stamp-its-complemento-de-pago-cfdi-tipo-p"},{"title":"Preview a CFDI 4.0 invoice as an unstamped PDF","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /invoices/preview/pdf","href":"/api-reference/invoices/preview-a-cfdi-40-invoice-as-an-unstamped-pdf"},{"title":"Get CFDI usage/quota for the current billing month","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /usage","href":"/api-reference/invoices/get-cfdi-usagequota-for-the-current-billing-month"},{"title":"Get a fiscal totals summary for a filtered set of invoices","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/report/summary","href":"/api-reference/invoices/get-a-fiscal-totals-summary-for-a-filtered-set-of-invoices"},{"title":"Export a filtered set of invoices as CSV","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/report/export.csv","href":"/api-reference/invoices/export-a-filtered-set-of-invoices-as-csv"},{"title":"Export a filtered set of invoices as a ZIP of their stamped XML","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/report/export/xml.zip","href":"/api-reference/invoices/export-a-filtered-set-of-invoices-as-a-zip-of-their-stamped-xml"},{"title":"Export a filtered set of invoices as a ZIP of their PDF representation","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/report/export/pdf.zip","href":"/api-reference/invoices/export-a-filtered-set-of-invoices-as-a-zip-of-their-pdf-representation"},{"title":"Request cancellation of a stamped CFDI","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /invoices/{uuid}/cancel","href":"/api-reference/invoices/request-cancellation-of-a-stamped-cfdi"},{"title":"Manually confirm the outcome of a pending cancellation","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /invoices/{uuid}/cancellations/{cancellationId}/resolve","href":"/api-reference/invoices/manually-confirm-the-outcome-of-a-pending-cancellation"},{"title":"List the cancellation history for an invoice","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/{uuid}/cancellations","href":"/api-reference/invoices/list-the-cancellation-history-for-an-invoice"},{"title":"Get the installments and balance of a PPD invoice","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/{uuid}/payments","href":"/api-reference/invoices/get-the-installments-and-balance-of-a-ppd-invoice"},{"title":"Get a single stamped CFDI by its folio fiscal UUID","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/{uuid}","href":"/api-reference/invoices/get-a-single-stamped-cfdi-by-its-folio-fiscal-uuid"},{"title":"Download the stamped CFDI XML","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/{uuid}/xml","href":"/api-reference/invoices/download-the-stamped-cfdi-xml"},{"title":"Download the CFDI's representación impresa (PDF)","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /invoices/{uuid}/pdf","href":"/api-reference/invoices/download-the-cfdis-representación-impresa-pdf"},{"title":"Send the CFDI (XML + PDF) by email to the receptor","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /invoices/{uuid}/email","href":"/api-reference/invoices/send-the-cfdi-xml-+-pdf-by-email-to-the-receptor"}]},{"group":"partners","pages":[{"title":"Get the current organization's partner enrollment","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/partners","href":"/api-reference/partners/get-the-current-organizations-partner-enrollment"},{"title":"Enroll the current organization as a referral partner","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/{organizationId}/partners/enroll","href":"/api-reference/partners/enroll-the-current-organization-as-a-referral-partner"},{"title":"Attribute this organization to a referral code, if eligible","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /organizations/{organizationId}/partners/attribute","href":"/api-reference/partners/attribute-this-organization-to-a-referral-code-if-eligible"},{"title":"List referred client organizations for this partner","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/partners/referrals","href":"/api-reference/partners/list-referred-client-organizations-for-this-partner"},{"title":"List this partner's monthly commission ledger","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /organizations/{organizationId}/partners/commissions","href":"/api-reference/partners/list-this-partners-monthly-commission-ledger"},{"title":"Check whether a referral code is valid and active","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /partners/validate-code","href":"/api-reference/partners/check-whether-a-referral-code-is-valid-and-active"}]},{"group":"partners-admin","pages":[{"title":"Mark a set of accrued commissions as paid","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json post /partners/commissions/mark-paid","href":"/api-reference/partners-admin/mark-a-set-of-accrued-commissions-as-paid"}]},{"group":"request-logs","pages":[{"title":"List API requests","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /request-logs","href":"/api-reference/request-logs/list-api-requests"},{"title":"Request counts over time","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /request-logs/stats","href":"/api-reference/request-logs/request-counts-over-time"},{"title":"Get one API request, including its error body","deprecated":null,"version":null,"openapi":"https://api.timbrix.mx/api/openapi.json get /request-logs/{id}","href":"/api-reference/request-logs/get-one-api-request-including-its-error-body"}]}]}]},"title":"Email Invoice - Timbrix","buildId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","deploymentId":"dpl_2oYXwqkEXirXBPk8wV1FtM5USFWi","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-WRhTSUDL.js","utils-ChMov4Kr.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-_REmC2bI.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Bp6nVRCu.js","snippetPresets-DZadmXoU.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-CY2WdoTl.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DwYG-Q4l.js","shallow-BXQIGwv4.js","getApiPlaygroundDisplay-CK5nK5B9.js","CodeSnippet-TH4a2aGW.js","CodeSnippets-DwsQiOFS.js","Page-R3M_BF4L.js","getPastedJson-DD7kUzi_.js","icon-holE3QoJ.js","MethodPill-DUW0T8us.js","DuplicateIcon-CI_p4be-.js","createIcon-BdbRvavb.js","DynamicMarkdown-DN96a4Ur.js","SectionHeading-SCu36A9d.js","axios-vUo_bRtp.js","Markdown-CCeGv-zI.js","clsx-BGBGWFTt.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-Cv_O2fky.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-2C5OB2eV.js"]}