{
"type": "https://errors.invoiceapi.mx/auth_unauthorized",
"title": "Authentication required",
"status": 401,
"code": "auth.unauthorized",
"detail": "Missing or invalid API key.",
"remediation": "Send `Authorization: Bearer sk_test_...` (or sk_live_...) with a valid API key.",
"doc_url": "/docs/errors#auth-unauthorized",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/invoice_already_stamped",
"title": "Invoice already stamped",
"status": 409,
"code": "invoice.already_stamped",
"detail": "This invoice is already stamped.",
"remediation": "Fetch the stamped invoice; do not re-stamp.",
"doc_url": "/docs/errors#invoice-already_stamped",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/cfdi_invalid_input",
"title": "Invalid invoice",
"status": 422,
"code": "cfdi.invalid_input",
"detail": "items.0.unit_price: expected a decimal string.",
"remediation": "Fix every field listed in `errors` and resubmit. See /openapi.json for the schema.",
"doc_url": "/docs/errors#cfdi-invalid_input",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/rate_limit_exceeded",
"title": "Rate limit exceeded",
"status": 429,
"code": "rate_limit.exceeded",
"detail": "Too many requests for this key + request class (reads and writes are limited separately).",
"remediation": "Back off and retry after the number of seconds in the Retry-After header; batch work or lower your request rate.",
"doc_url": "/docs/errors#rate_limit-exceeded",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/internal_error",
"title": "Internal server error",
"status": 500,
"code": "internal.error",
"detail": "An unexpected error occurred.",
"remediation": "Retry later; contact support with the request_id if it persists.",
"doc_url": "/docs/errors#internal-error",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/pac_internal_error",
"title": "PAC internal error",
"status": 502,
"code": "pac.internal_error",
"detail": "The stamping service reported a transient internal error.",
"remediation": "Retry with backoff.",
"doc_url": "/docs/errors#pac-internal_error",
"request_id": "req_2P9K3sample"
}
invoices
Create an invoice
Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from `fiscal_profile_id`, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): `customer` and at least one `items` line, each with `product_key`, `unit_key`, `quantity`, and `unit_price`, plus `payment_form` and `payment_method` (PUE|PPD; PPD forces payment_form "99"), and a `use` (invoice-level or `customer.use`). Type E (nota de crédito) also requires `relation` ({ type "01" or "03", uuids }). Type P (pago): omit `items`/`payment_form`/`payment_method` and supply `payments` (complemento de pagos 2.0). Set `draft: true` to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.
{
"type": "https://errors.invoiceapi.mx/auth_unauthorized",
"title": "Authentication required",
"status": 401,
"code": "auth.unauthorized",
"detail": "Missing or invalid API key.",
"remediation": "Send `Authorization: Bearer sk_test_...` (or sk_live_...) with a valid API key.",
"doc_url": "/docs/errors#auth-unauthorized",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/invoice_already_stamped",
"title": "Invoice already stamped",
"status": 409,
"code": "invoice.already_stamped",
"detail": "This invoice is already stamped.",
"remediation": "Fetch the stamped invoice; do not re-stamp.",
"doc_url": "/docs/errors#invoice-already_stamped",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/cfdi_invalid_input",
"title": "Invalid invoice",
"status": 422,
"code": "cfdi.invalid_input",
"detail": "items.0.unit_price: expected a decimal string.",
"remediation": "Fix every field listed in `errors` and resubmit. See /openapi.json for the schema.",
"doc_url": "/docs/errors#cfdi-invalid_input",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/rate_limit_exceeded",
"title": "Rate limit exceeded",
"status": 429,
"code": "rate_limit.exceeded",
"detail": "Too many requests for this key + request class (reads and writes are limited separately).",
"remediation": "Back off and retry after the number of seconds in the Retry-After header; batch work or lower your request rate.",
"doc_url": "/docs/errors#rate_limit-exceeded",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/internal_error",
"title": "Internal server error",
"status": 500,
"code": "internal.error",
"detail": "An unexpected error occurred.",
"remediation": "Retry later; contact support with the request_id if it persists.",
"doc_url": "/docs/errors#internal-error",
"request_id": "req_2P9K3sample"
}
{
"type": "https://errors.invoiceapi.mx/pac_internal_error",
"title": "PAC internal error",
"status": 502,
"code": "pac.internal_error",
"detail": "The stamping service reported a transient internal error.",
"remediation": "Retry with backoff.",
"doc_url": "/docs/errors#pac-internal_error",
"request_id": "req_2P9K3sample"
}
Pin a dated API release (Stripe-style). Omit to use the current version. An unknown value returns 400 request.invalid_version. Echoed back on every response.
Safely retry any POST. A successful (2xx) response is stored for 24h and replayed byte-for-byte for identical retries (the replay adds an idempotent-replayed: true header). A non-2xx releases the key, so you can fix the cause and retry with the same key; pac.stamp_outcome_unknown, pac.auth_failed and download.request_failed are the exceptions and replay like a success. Reusing the key of a stored response with a different body is 409 idempotency.key_reuse; an in-flight duplicate is 409 idempotency.key_processing.
c_FormaPago code (FormaPago), e.g. "01" efectivo, "03" transferencia, "99" por definir. Required for type I/E; forced to "99" when payment_method is PPD. See GET /v1/catalogs/payment_forms (or the SAT catalogs guide) for each code's meaning.
c_UsoCFDI code (UsoCFDI), e.g. "G03"; falls back to customer.use. Required for type I/E. See GET /v1/catalogs/uso_cfdi (or the SAT catalogs guide) for each code's meaning.
c_Exportacion code (Exportacion). Default "01" (no aplica); other codes need the Comercio Exterior complement (not supported in v1). See GET /v1/catalogs/export_types (or the SAT catalogs guide) for each code's meaning.
Id of the fiscal profile (issuer) to stamp with, e.g. "fp_2P9K3sample". Required in live mode. In test mode it may be omitted while your organization has no test fiscal profile of its own; the invoice is then issued from the default sandbox issuer.
The full issuer profile — present only when ?expand=fiscal_profile is requested.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Invoice API","description":"Mexican CFDI 4.0 invoicing API — stamp, cancel, validate, and bulk-download.","colors":{"primary":"#16a34a","light":"#4ade80","dark":"#15803d"},"favicon":"https://mintcdn.com/invoiceapi/zn1ZuSpkXG_1Rv6s/favicon.svg?fit=max\u0026auto=format\u0026n=zn1ZuSpkXG_1Rv6s\u0026q=85\u0026s=77fb818571243295fe27cfc2fc5a1479","navbar":{"primary":{"type":"button","label":"Quickstart","href":"/quickstart"}},"footer":{"socials":{}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"invoiceapi","hasAudioNarration":false,"actualSubdomain":"invoiceapi","customDomains":["docs.newinvoice.dev"],"gitSource":{"type":"github","owner":"disruptive-learning","repo":"invoice_api","deployBranch":"main","contentDirectory":"mintlify","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af358e37449a8e2dc9bd3ba","clientVersion":"0.0.4102","searchFilterCounts":[{"language":"default","tag":"API Reference","count":77},{"language":"default","tag":"Documentation","count":17},{"language":"default","tag":"Guides","count":12},{"language":"default","tag":"fiscal_profiles","count":11},{"language":"default","tag":"invoices","count":7},{"language":"default","tag":"downloads","count":6},{"language":"default","tag":"webhook_endpoints","count":6},{"language":"default","tag":"accounts","count":5},{"language":"default","tag":"ticket_invoices","count":5},{"language":"default","tag":"api_keys","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":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":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"editor-metadata","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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/invoices/create-an-invoice","slug":"/api-reference/invoices/create-an-invoice","pageMetadata":{"title":"Create an invoice","description":"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from `fiscal_profile_id`, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): `customer` and at least one `items` line, each with `product_key`, `unit_key`, `quantity`, and `unit_price`, plus `payment_form` and `payment_method` (PUE|PPD; PPD forces payment_form \"99\"), and a `use` (invoice-level or `customer.use`). Type E (nota de crédito) also requires `relation` ({ type \"01\" or \"03\", uuids }). Type P (pago): omit `items`/`payment_form`/`payment_method` and supply `payments` (complemento de pagos 2.0). Set `draft: true` to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/invoices","href":"/api-reference/invoices/create-an-invoice","autogeneratedByOpenApi":true},"description":"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from `fiscal_profile_id`, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): `customer` and at least one `items` line, each with `product_key`, `unit_key`, `quantity`, and `unit_price`, plus `payment_form` and `payment_method` (PUE|PPD; PPD forces payment_form \"99\"), and a `use` (invoice-level or `customer.use`). Type E (nota de crédito) also requires `relation` ({ type \"01\" or \"03\", uuids }). Type P (pago): omit `items`/`payment_form`/`payment_method` and supply `payments` (complemento de pagos 2.0). Set `draft: true` to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.","pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create an invoice","description":"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from `fiscal_profile_id`, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): `customer` and at least one `items` line, each with `product_key`, `unit_key`, `quantity`, and `unit_price`, plus `payment_form` and `payment_method` (PUE|PPD; PPD forces payment_form \"99\"), and a `use` (invoice-level or `customer.use`). Type E (nota de crédito) also requires `relation` ({ type \"01\" or \"03\", uuids }). Type P (pago): omit `items`/`payment_form`/`payment_method` and supply `payments` (complemento de pagos 2.0). Set `draft: true` to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/invoices","href":"/api-reference/invoices/create-an-invoice","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Create an invoice","tags":["invoices"],"description":"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from `fiscal_profile_id`, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): `customer` and at least one `items` line, each with `product_key`, `unit_key`, `quantity`, and `unit_price`, plus `payment_form` and `payment_method` (PUE|PPD; PPD forces payment_form \"99\"), and a `use` (invoice-level or `customer.use`). Type E (nota de crédito) also requires `relation` ({ type \"01\" or \"03\", uuids }). Type P (pago): omit `items`/`payment_form`/`payment_method` and supply `payments` (complemento de pagos 2.0). Set `draft: true` to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.","requestBody":"dc5eebdb-7e61-4201-aae8-4413cb937af2","parameters":["bf4feefc-4e22-4885-b47b-30847c02ee03","b9984b58-bb61-461a-bbc2-a73c5ceaad22","b8b0c46c-cca7-4bff-a79a-62c190dd8ed8","17888fe0-9331-4d5b-9610-72740a1c83d4","be3da36a-7c6b-4f83-a10b-1dcaf41799ac"],"responses":{"201":"692a8eeb-6fe3-4975-81c1-097b32215679","401":"8e198b49-c90d-4a47-a9f9-6f85f3587db7","409":"ca43443f-c3a6-4355-a9cf-a29a015f8b14","422":"ef43d617-2c19-4a7b-94a7-af29a2c28002","429":"91b08b79-c9a8-41dd-a784-29b410794c98","500":"5d4d3753-1555-4018-a43b-82fbe52e432a","502":"40f62cb2-1a85-4007-a659-6b1056331577"},"method":"post","type":"path","servers":["27cbbabf-b868-4dd7-9f42-82ed41e06a45","22831049-409c-435a-9033-cccf2eda1b9e"],"security":["e1ec91d2-3bec-4f58-a497-048f82e6106b"],"path":"/v1/invoices","baseUrlOptions":["https://api.newinvoice.dev","http://localhost:3000"],"title":"Create an invoice","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"bf4feefc-4e22-4885-b47b-30847c02ee03":{"schema":{"oneOf":[{"type":"string","description":"Comma-separated related objects to inline, e.g. \"fiscal_profile\".","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Comma-separated related objects to inline, e.g. \"fiscal_profile\".","uniqueKey":"oneOf.1","typeLabel":"string[]"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | string[]"},"in":"query","name":"expand","required":false,"description":"Comma-separated related objects to inline, e.g. \"fiscal_profile\"."},"b9984b58-bb61-461a-bbc2-a73c5ceaad22":{"schema":{"oneOf":[{"type":"string","description":"Bracket-array form of `expand`, e.g. ?expand[]=fiscal_profile.","uniqueKey":"oneOf.0","typeLabel":"string"},{"type":"array","items":{"type":"string","uniqueKey":"oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"Bracket-array form of `expand`, e.g. ?expand[]=fiscal_profile.","uniqueKey":"oneOf.1","typeLabel":"string[]"}],"isRequired":false,"uniqueKey":"","typeLabel":"string | string[]"},"in":"query","name":"expand[]","required":false,"description":"Bracket-array form of `expand`, e.g. ?expand[]=fiscal_profile."},"b8b0c46c-cca7-4bff-a79a-62c190dd8ed8":{"name":"Invoice-Version","in":"header","required":false,"description":"Pin a dated API release (Stripe-style). Omit to use the current version. An unknown value returns 400 `request.invalid_version`. Echoed back on every response.","schema":{"type":"string","example":"2026-07-10","isRequired":false,"description":"Pin a dated API release (Stripe-style). Omit to use the current version. An unknown value returns 400 `request.invalid_version`. Echoed back on every response.","uniqueKey":"","typeLabel":"string"}},"17888fe0-9331-4d5b-9610-72740a1c83d4":{"name":"Invoice-Account","in":"header","required":false,"description":"Connect: act on behalf of one of your connected accounts (its `acct_…`/`org_…` id). Omit to act as your own organization. Not honored on /v1/api_keys.","schema":{"type":"string","example":"org_2P9connectedacct","isRequired":false,"description":"Connect: act on behalf of one of your connected accounts (its `acct_…`/`org_…` id). Omit to act as your own organization. Not honored on /v1/api_keys.","uniqueKey":"","typeLabel":"string"}},"be3da36a-7c6b-4f83-a10b-1dcaf41799ac":{"name":"Idempotency-Key","in":"header","required":false,"description":"Safely retry any POST. A successful (2xx) response is stored for 24h and replayed byte-for-byte for identical retries (the replay adds an `idempotent-replayed: true` header). A non-2xx releases the key, so you can fix the cause and retry with the same key; `pac.stamp_outcome_unknown`, `pac.auth_failed` and `download.request_failed` are the exceptions and replay like a success. Reusing the key of a stored response with a different body is 409 `idempotency.key_reuse`; an in-flight duplicate is 409 `idempotency.key_processing`.","schema":{"type":"string","example":"a1b2c3d4-e5f6-4789-8abc-1234567890ab","isRequired":false,"description":"Safely retry any POST. A successful (2xx) response is stored for 24h and replayed byte-for-byte for identical retries (the replay adds an `idempotent-replayed: true` header). A non-2xx releases the key, so you can fix the cause and retry with the same key; `pac.stamp_outcome_unknown`, `pac.auth_failed` and `download.request_failed` are the exceptions and replay like a success. Reusing the key of a stored response with a different body is 409 `idempotency.key_reuse`; an in-flight duplicate is 409 `idempotency.key_processing`.","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"default":"I","description":"CFDI TipoDeComprobante: \"I\" ingreso (default), \"E\" egreso (nota de crédito), \"P\" pago.","type":"string","enum":["I","E","P"],"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"serie":{"description":"CFDI Serie (optional invoice series prefix).","type":"string","minLength":1,"maxLength":25,"uniqueKey":"serie","typeLabel":"string"},"folio":{"description":"CFDI Folio; auto-assigned when omitted.","type":"string","minLength":1,"maxLength":40,"uniqueKey":"folio","typeLabel":"string"},"date":{"description":"CFDI Fecha, ISO-8601; defaults to now at build time. Must be within the past 72 hours.","type":"string","uniqueKey":"date","typeLabel":"string"},"payment_form":{"description":"c_FormaPago code (FormaPago), e.g. \"01\" efectivo, \"03\" transferencia, \"99\" por definir. Required for type I/E; forced to \"99\" when payment_method is PPD. See GET /v1/catalogs/payment_forms (or the SAT catalogs guide) for each code's meaning.","type":"string","enum":["01","02","03","04","05","06","08","12","13","14","15","17","23","24","25","26","27","28","29","30","31","99"],"uniqueKey":"payment_form","typeLabel":"enum\u003cstring>"},"payment_method":{"description":"c_MetodoPago: \"PUE\" pago en una sola exhibición or \"PPD\" pago en parcialidades o diferido. Required for type I/E.","type":"string","enum":["PUE","PPD"],"uniqueKey":"payment_method","typeLabel":"enum\u003cstring>"},"currency":{"default":"MXN","description":"c_Moneda currency code (Moneda), e.g. \"MXN\" (default) or \"USD\". See GET /v1/catalogs/currencies (or the SAT catalogs guide) for each code's meaning.","type":"string","enum":["MXN","USD","EUR","CAD","GBP","JPY","CHF","CNY","AUD","BRL","ARS","COP","CLP","PEN","DKK","SEK","NOK","HKD","SGD","NZD","KRW","XXX"],"uniqueKey":"currency","typeLabel":"enum\u003cstring>"},"exchange_rate":{"oneOf":[{"type":"string","description":"TipoCambio: MXN per 1 unit of currency; required when currency is neither MXN nor XXX.","pattern":"^-?\\d+(\\.\\d+)?$","uniqueKey":"exchange_rate.oneOf.0","typeLabel":"string"},{"type":"number","description":"TipoCambio: MXN per 1 unit of currency; required when currency is neither MXN nor XXX.","uniqueKey":"exchange_rate.oneOf.1","typeLabel":"number"}],"uniqueKey":"exchange_rate","typeLabel":"string | number"},"use":{"description":"c_UsoCFDI code (UsoCFDI), e.g. \"G03\"; falls back to customer.use. Required for type I/E. See GET /v1/catalogs/uso_cfdi (or the SAT catalogs guide) for each code's meaning.","type":"string","enum":["G01","G02","G03","I01","I02","I03","I04","I05","I06","I07","I08","D01","D02","D03","D04","D05","D06","D07","D08","D09","D10","S01","CP01","CN01"],"uniqueKey":"use","typeLabel":"enum\u003cstring>"},"export":{"default":"01","description":"c_Exportacion code (Exportacion). Default \"01\" (no aplica); other codes need the Comercio Exterior complement (not supported in v1). See GET /v1/catalogs/export_types (or the SAT catalogs guide) for each code's meaning.","type":"string","enum":["01","02","03","04"],"uniqueKey":"export","typeLabel":"enum\u003cstring>"},"relation":{"description":"CFDI relation (CfdiRelacionados). Required for type E (nota de crédito).","type":"object","properties":{"type":{"type":"string","description":"c_TipoRelacion code, e.g. \"01\" nota de crédito, \"03\" devolución, \"04\" sustitución. See GET /v1/catalogs/relation_types (or the SAT catalogs guide) for each code's meaning.","enum":["01","02","03","04","05","06","07"],"isRequired":true,"uniqueKey":"relation.type","typeLabel":"enum\u003cstring>"},"uuids":{"minItems":1,"type":"array","items":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","uniqueKey":"relation.uuids.items.[INDEX]","typeLabel":"string"},"description":"The related CFDI UUIDs (RFC-4122 folios fiscales).","isRequired":true,"uniqueKey":"relation.uuids","typeLabel":"string[]"}},"required":["type","uuids"],"uniqueKey":"relation","typeLabel":"object"},"customer":{"type":"object","properties":{"rfc":{"description":"Customer RFC (12/13 chars, or generic XAXX010101000 público en general / XEXX010101000 foreign).","type":"string","isRequired":true,"uniqueKey":"customer.rfc","typeLabel":"string"},"name":{"type":"string","minLength":1,"maxLength":254,"description":"Customer legal name (razón social) exactly as on their Constancia de Situación Fiscal.","isRequired":true,"uniqueKey":"customer.name","typeLabel":"string"},"zip":{"type":"string","pattern":"^\\d{5}$","description":"Customer fiscal-domicile ZIP (DomicilioFiscalReceptor), exactly 5 digits.","isRequired":true,"uniqueKey":"customer.zip","typeLabel":"string"},"tax_regime":{"type":"string","description":"Customer c_RegimenFiscal code, e.g. \"616\" (sin obligaciones fiscales). See GET /v1/catalogs/tax_regimes (or the SAT catalogs guide) for each code's meaning.","enum":["601","603","605","606","607","608","610","611","612","614","615","616","620","621","622","623","624","625","626"],"isRequired":true,"uniqueKey":"customer.tax_regime","typeLabel":"enum\u003cstring>"},"use":{"description":"Customer c_UsoCFDI code, e.g. \"G03\" (gastos en general); the invoice-level `use` is the fallback. See GET /v1/catalogs/uso_cfdi (or the SAT catalogs guide) for each code's meaning.","type":"string","enum":["G01","G02","G03","I01","I02","I03","I04","I05","I06","I07","I08","D01","D02","D03","D04","D05","D06","D07","D08","D09","D10","S01","CP01","CN01"],"uniqueKey":"customer.use","typeLabel":"enum\u003cstring>"},"residence_country":{"description":"c_Pais code for foreign receptors (ResidenciaFiscal), e.g. \"USA\"; required with num_reg_id_trib.","type":"string","minLength":3,"maxLength":3,"uniqueKey":"customer.residence_country","typeLabel":"string"},"num_reg_id_trib":{"description":"Foreign tax registration id (NumRegIdTrib) for non-Mexican receptors.","type":"string","minLength":1,"maxLength":40,"uniqueKey":"customer.num_reg_id_trib","typeLabel":"string"}},"required":["rfc","name","zip","tax_regime"],"description":"Customer (Receptor) — who the invoice is for.","uniqueKey":"customer","typeLabel":"object"},"items":{"default":[],"description":"Line items (Conceptos). Required for type I/E; must be empty for type P.","type":"array","items":{"type":"object","properties":{"product_key":{"type":"string","pattern":"^\\d{8}$","description":"8-digit SAT c_ClaveProdServ, e.g. \"80141600\". Validated against the catalog.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].product_key","typeLabel":"string"},"unit_key":{"type":"string","pattern":"^[A-Z0-9]{1,3}$","description":"1-3 char uppercase SAT c_ClaveUnidad, e.g. \"H87\" (pieza) or \"E48\" (unidad de servicio).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].unit_key","typeLabel":"string"},"description":{"type":"string","minLength":1,"maxLength":1000,"description":"Free-text line description (Descripción), e.g. \"Consultoría\".","isRequired":true,"uniqueKey":"\\items.items.[INDEX].description","typeLabel":"string"},"quantity":{"oneOf":[{"type":"string","description":"Quantity (Cantidad), a positive decimal, e.g. \"1\" or \"2.5\".","pattern":"^-?\\d+(\\.\\d+)?$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].quantity.oneOf.0","typeLabel":"string"},{"type":"number","description":"Quantity (Cantidad), a positive decimal, e.g. \"1\" or \"2.5\".","isRequired":true,"uniqueKey":"\\items.items.[INDEX].quantity.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].quantity","typeLabel":"string | number"},"unit_price":{"oneOf":[{"type":"string","description":"Unit price before taxes (ValorUnitario), decimal string, e.g. \"100.00\".","pattern":"^-?\\d+(\\.\\d+)?$","isRequired":true,"uniqueKey":"\\items.items.[INDEX].unit_price.oneOf.0","typeLabel":"string"},{"type":"number","description":"Unit price before taxes (ValorUnitario), decimal string, e.g. \"100.00\".","isRequired":true,"uniqueKey":"\\items.items.[INDEX].unit_price.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].unit_price","typeLabel":"string | number"},"unit_name":{"description":"Human-readable unit label (Unidad), e.g. \"Pieza\"; derived from unit_key when omitted.","type":"string","minLength":1,"maxLength":20,"uniqueKey":"\\items.items.[INDEX].unit_name","typeLabel":"string"},"discount":{"oneOf":[{"type":"string","description":"Per-line discount amount (Descuento), decimal string, e.g. \"10.00\".","pattern":"^-?\\d+(\\.\\d+)?$","uniqueKey":"\\items.items.[INDEX].discount.oneOf.0","typeLabel":"string"},{"type":"number","description":"Per-line discount amount (Descuento), decimal string, e.g. \"10.00\".","uniqueKey":"\\items.items.[INDEX].discount.oneOf.1","typeLabel":"number"}],"uniqueKey":"\\items.items.[INDEX].discount","typeLabel":"string | number"},"sku":{"description":"Internal SKU / product code (NoIdentificacion).","type":"string","minLength":1,"maxLength":100,"uniqueKey":"\\items.items.[INDEX].sku","typeLabel":"string"},"tax_object":{"description":"c_ObjetoImp: \"01\" no objeto de impuesto, \"02\" sí objeto, \"03\" sí objeto y no obligado al desglose, \"04\" sí objeto y no causa impuesto. Defaults to \"02\" when taxes present, \"01\" when none. See GET /v1/catalogs/tax_objects (or the SAT catalogs guide) for each code's meaning.","type":"string","enum":["01","02","03","04"],"uniqueKey":"\\items.items.[INDEX].tax_object","typeLabel":"enum\u003cstring>"},"taxes":{"description":"Per-line taxes. Defaults to 16% IVA traslado when omitted.","type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["IVA","ISR","IEPS"],"description":"Tax type: \"IVA\", \"ISR\", or \"IEPS\" (maps to the SAT c_Impuesto code).","isRequired":true,"uniqueKey":"\\items.items.[INDEX].taxes.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"rate":{"oneOf":[{"type":"string","description":"Tasa/Cuota rate as a decimal, e.g. \"0.160000\" for 16% IVA. Omitted/ignored for factor \"Exento\".","pattern":"^-?\\d+(\\.\\d+)?$","uniqueKey":"\\items.items.[INDEX].taxes.items.[INDEX].rate.oneOf.0","typeLabel":"string"},{"type":"number","description":"Tasa/Cuota rate as a decimal, e.g. \"0.160000\" for 16% IVA. Omitted/ignored for factor \"Exento\".","uniqueKey":"\\items.items.[INDEX].taxes.items.[INDEX].rate.oneOf.1","typeLabel":"number"}],"uniqueKey":"\\items.items.[INDEX].taxes.items.[INDEX].rate","typeLabel":"string | number"},"factor":{"default":"Tasa","description":"c_TipoFactor: \"Tasa\" (percentage), \"Cuota\" (fixed per unit), or \"Exento\" (exempt). Default \"Tasa\".","type":"string","enum":["Tasa","Cuota","Exento"],"uniqueKey":"\\items.items.[INDEX].taxes.items.[INDEX].factor","typeLabel":"enum\u003cstring>"},"withholding":{"default":false,"description":"true = retención (withholding); false/absent = traslado (default).","type":"boolean","uniqueKey":"\\items.items.[INDEX].taxes.items.[INDEX].withholding","typeLabel":"boolean"}},"required":["type"],"uniqueKey":"\\items.items.[INDEX].taxes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items.items.[INDEX].taxes","typeLabel":"object[]"},"tax_included":{"default":false,"description":"When true, unit_price already includes taxes and the taxable base is back-computed. Default false.","type":"boolean","uniqueKey":"\\items.items.[INDEX].tax_included","typeLabel":"boolean"}},"required":["product_key","unit_key","description","quantity","unit_price"],"uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"uniqueKey":"\\items","typeLabel":"object[]"},"payments":{"description":"Complemento de pagos 2.0 entries. Required for and only valid on type P.","type":"array","items":{"type":"object","properties":{"date":{"type":"string","description":"Payment date/time (FechaPago), ISO-8601, e.g. \"2026-07-01T12:00:00\".","isRequired":true,"uniqueKey":"payments.items.[INDEX].date","typeLabel":"string"},"form":{"type":"string","description":"c_FormaPago of the actual payment (FormaDePagoP), e.g. \"03\" transferencia; cannot be \"99\".","isRequired":true,"uniqueKey":"payments.items.[INDEX].form","typeLabel":"string"},"amount":{"oneOf":[{"type":"string","description":"Total amount of this payment (Monto), decimal string.","pattern":"^-?\\d+(\\.\\d+)?$","isRequired":true,"uniqueKey":"payments.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"number","description":"Total amount of this payment (Monto), decimal string.","isRequired":true,"uniqueKey":"payments.items.[INDEX].amount.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"payments.items.[INDEX].amount","typeLabel":"string | number"},"related_documents":{"minItems":1,"type":"array","items":{"type":"object","properties":{"uuid":{"type":"string","pattern":"^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$","description":"UUID of the invoice being paid (IdDocumento / folio fiscal).","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].uuid","typeLabel":"string"},"currency":{"type":"string","description":"c_Moneda of the related document (MonedaDR), e.g. \"MXN\".","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].currency","typeLabel":"string"},"installment":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991,"description":"Payment installment number (NumParcialidad), 1-based.","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].installment","typeLabel":"integer"},"previous_balance":{"oneOf":[{"type":"string","description":"Balance before this payment (ImpSaldoAnt), decimal string.","pattern":"^-?\\d+(\\.\\d+)?$","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].previous_balance.oneOf.0","typeLabel":"string"},{"type":"number","description":"Balance before this payment (ImpSaldoAnt), decimal string.","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].previous_balance.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].previous_balance","typeLabel":"string | number"},"amount_paid":{"oneOf":[{"type":"string","description":"Amount applied to this document (ImpPagado), decimal string.","pattern":"^-?\\d+(\\.\\d+)?$","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].amount_paid.oneOf.0","typeLabel":"string"},{"type":"number","description":"Amount applied to this document (ImpPagado), decimal string.","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].amount_paid.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].amount_paid","typeLabel":"string | number"},"outstanding_balance":{"oneOf":[{"type":"string","description":"Balance after this payment (ImpSaldoInsoluto), decimal string.","pattern":"^-?\\d+(\\.\\d+)?$","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].outstanding_balance.oneOf.0","typeLabel":"string"},{"type":"number","description":"Balance after this payment (ImpSaldoInsoluto), decimal string.","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].outstanding_balance.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].outstanding_balance","typeLabel":"string | number"},"tax_object":{"type":"string","enum":["01","02","03","04"],"description":"c_ObjetoImp of the related document (ObjetoImpDR), e.g. \"02\" sí objeto de impuesto.","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].tax_object","typeLabel":"enum\u003cstring>"},"serie":{"description":"Serie of the related document (SerieDR).","type":"string","minLength":1,"maxLength":25,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].serie","typeLabel":"string"},"folio":{"description":"Folio of the related document (FolioDR).","type":"string","minLength":1,"maxLength":40,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].folio","typeLabel":"string"},"equivalence":{"oneOf":[{"type":"string","description":"EquivalenciaDR: units of MonedaDR per 1 MonedaP; \"1\" when they are equal. Required when MonedaDR ≠ MonedaP.","pattern":"^-?\\d+(\\.\\d+)?$","uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].equivalence.oneOf.0","typeLabel":"string"},{"type":"number","description":"EquivalenciaDR: units of MonedaDR per 1 MonedaP; \"1\" when they are equal. Required when MonedaDR ≠ MonedaP.","uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].equivalence.oneOf.1","typeLabel":"number"}],"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].equivalence","typeLabel":"string | number"},"taxes":{"description":"Taxes carried by the related document (ImpuestosDR).","type":"array","items":{"type":"object","properties":{"type":{"type":"string","enum":["IVA","ISR","IEPS"],"description":"Tax type: \"IVA\", \"ISR\", or \"IEPS\".","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"base":{"oneOf":[{"type":"string","description":"Taxable base for this tax (BaseDR), decimal string.","pattern":"^-?\\d+(\\.\\d+)?$","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].base.oneOf.0","typeLabel":"string"},{"type":"number","description":"Taxable base for this tax (BaseDR), decimal string.","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].base.oneOf.1","typeLabel":"number"}],"isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].base","typeLabel":"string | number"},"rate":{"oneOf":[{"type":"string","description":"Tasa/Cuota rate as a decimal, e.g. \"0.160000\". Omitted for \"Exento\".","pattern":"^-?\\d+(\\.\\d+)?$","uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].rate.oneOf.0","typeLabel":"string"},{"type":"number","description":"Tasa/Cuota rate as a decimal, e.g. \"0.160000\". Omitted for \"Exento\".","uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].rate.oneOf.1","typeLabel":"number"}],"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].rate","typeLabel":"string | number"},"factor":{"default":"Tasa","description":"c_TipoFactor: \"Tasa\", \"Cuota\", or \"Exento\". Default \"Tasa\".","type":"string","enum":["Tasa","Cuota","Exento"],"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].factor","typeLabel":"enum\u003cstring>"},"amount":{"oneOf":[{"type":"string","description":"Tax amount (ImporteDR), decimal string; computed from base × rate when omitted.","pattern":"^-?\\d+(\\.\\d+)?$","uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].amount.oneOf.0","typeLabel":"string"},{"type":"number","description":"Tax amount (ImporteDR), decimal string; computed from base × rate when omitted.","uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].amount.oneOf.1","typeLabel":"number"}],"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].amount","typeLabel":"string | number"},"withholding":{"default":false,"description":"true = retención; false = traslado (default).","type":"boolean","uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX].withholding","typeLabel":"boolean"}},"required":["type","base"],"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX].taxes","typeLabel":"object[]"}},"required":["uuid","currency","installment","previous_balance","amount_paid","outstanding_balance","tax_object"],"uniqueKey":"payments.items.[INDEX].related_documents.items.[INDEX]","typeLabel":"object"},"description":"The invoices this payment settles (at least one DoctoRelacionado).","isRequired":true,"uniqueKey":"payments.items.[INDEX].related_documents","typeLabel":"object[]"},"currency":{"default":"MXN","description":"c_Moneda of the payment (MonedaP), a real currency (not XXX). Default \"MXN\".","type":"string","uniqueKey":"payments.items.[INDEX].currency","typeLabel":"string"},"exchange_rate":{"oneOf":[{"type":"string","description":"TipoCambioP: MXN per 1 unit of MonedaP; required when MonedaP ≠ MXN.","pattern":"^-?\\d+(\\.\\d+)?$","uniqueKey":"payments.items.[INDEX].exchange_rate.oneOf.0","typeLabel":"string"},{"type":"number","description":"TipoCambioP: MXN per 1 unit of MonedaP; required when MonedaP ≠ MXN.","uniqueKey":"payments.items.[INDEX].exchange_rate.oneOf.1","typeLabel":"number"}],"uniqueKey":"payments.items.[INDEX].exchange_rate","typeLabel":"string | number"},"num_operation":{"description":"Payment reference number (NumOperacion), e.g. a transfer id.","type":"string","minLength":1,"maxLength":100,"uniqueKey":"payments.items.[INDEX].num_operation","typeLabel":"string"}},"required":["date","form","amount","related_documents"],"uniqueKey":"payments.items.[INDEX]","typeLabel":"object"},"uniqueKey":"payments","typeLabel":"object[]"},"global_information":{"description":"InformacionGlobal for a factura global (público en general XAXX010101000).","type":"object","properties":{"periodicity":{"type":"string","description":"c_Periodicidad code, e.g. \"01\" diario, \"04\" mensual (factura global público en general).","isRequired":true,"uniqueKey":"global_information.periodicity","typeLabel":"string"},"months":{"type":"string","pattern":"^(0[1-9]|1[0-8])$","description":"c_Meses code: \"01\"-\"12\" for a month, \"13\"-\"18\" for a bimester.","isRequired":true,"uniqueKey":"global_information.months","typeLabel":"string"},"year":{"type":"integer","minimum":2021,"maximum":2099,"description":"Four-digit fiscal year of the global invoice, e.g. 2026.","isRequired":true,"uniqueKey":"global_information.year","typeLabel":"integer"}},"required":["periodicity","months","year"],"uniqueKey":"global_information","typeLabel":"object"},"fiscal_profile_id":{"description":"Id of the fiscal profile (issuer) to stamp with, e.g. \"fp_2P9K3sample\". Required in live mode. In test mode it may be omitted while your organization has no test fiscal profile of its own; the invoice is then issued from the default sandbox issuer.","type":"string","minLength":1,"uniqueKey":"fiscal_profile_id","typeLabel":"string"},"draft":{"description":"Hold the invoice as a signed draft instead of stamping it immediately (default false).","type":"boolean","uniqueKey":"draft","typeLabel":"boolean"},"metadata":{"description":"Integrator-owned key-value map (≤50 keys), stored and echoed back verbatim.","type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":40},"additionalProperties":{"type":"string","maxLength":500,"uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"uniqueKey":"metadata","typeLabel":"object"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"example":{"fiscal_profile_id":"fp_2P9K3sample","type":"I","customer":{"rfc":"XAXX010101000","name":"PUBLICO EN GENERAL","tax_regime":"616","postal_code":"06000","cfdi_use":"S01"},"items":[{"product_key":"01010101","unit_key":"H87","description":"Consultoria","quantity":"1","unit_price":"100.00","taxes":[{"type":"IVA","rate":"0.160000","factor":"Tasa"}]}],"payment_form":"03","payment_method":"PUE","metadata":{"order_id":"ord_1789"}},"examples":{"Example":{"title":"Example","value":{"fiscal_profile_id":"fp_2P9K3sample","type":"I","customer":{"rfc":"XAXX010101000","name":"PUBLICO EN GENERAL","tax_regime":"616","postal_code":"06000","cfdi_use":"S01"},"items":[{"product_key":"01010101","unit_key":"H87","description":"Consultoria","quantity":"1","unit_price":"100.00","taxes":[{"type":"IVA","rate":"0.160000","factor":"Tasa"}]}],"payment_form":"03","payment_method":"PUE","metadata":{"order_id":"ord_1789"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"692a8eeb-6fe3-4975-81c1-097b32215679":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","description":"Always \"invoice\".","enum":["invoice"],"isRequired":true,"uniqueKey":"object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Invoice id, e.g. \"inv_2P9K3sample\".","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"livemode":{"type":"boolean","description":"True if stamped with a live-mode key against the real SAT.","isRequired":true,"uniqueKey":"livemode","typeLabel":"boolean"},"status":{"type":"string","enum":["draft","stamping","stamped","stamp_failed"],"description":"Lifecycle status: draft, stamping (in flight), stamped, or stamp_failed.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"type":{"type":"string","enum":["I","E","P"],"description":"CFDI TipoDeComprobante: \"I\" ingreso, \"E\" egreso (nota de crédito), \"P\" pago.","isRequired":true,"uniqueKey":"type","typeLabel":"enum\u003cstring>"},"fiscal_profile_id":{"type":"string","description":"Id of the fiscal profile (issuer) that stamped this invoice.","isRequired":true,"uniqueKey":"fiscal_profile_id","typeLabel":"string"},"serie":{"oneOf":[{"type":"string","description":"CFDI Serie, or null if unset.","isRequired":true,"uniqueKey":"serie.oneOf.0","typeLabel":"string"},{"type":"null","description":"CFDI Serie, or null if unset.","isRequired":true,"uniqueKey":"serie.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"serie","typeLabel":"string | null"},"folio":{"oneOf":[{"type":"string","description":"CFDI Folio, or null if unset.","isRequired":true,"uniqueKey":"folio.oneOf.0","typeLabel":"string"},{"type":"null","description":"CFDI Folio, or null if unset.","isRequired":true,"uniqueKey":"folio.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"folio","typeLabel":"string | null"},"customer":{"type":"object","properties":{"rfc":{"type":"string","description":"Customer (receptor) RFC.","isRequired":true,"uniqueKey":"customer.rfc","typeLabel":"string"},"name":{"type":"string","description":"Customer legal name (razón social).","isRequired":true,"uniqueKey":"customer.name","typeLabel":"string"},"zip":{"oneOf":[{"type":"string","description":"Customer fiscal-domicile ZIP (DomicilioFiscalReceptor).","isRequired":true,"uniqueKey":"customer.zip.oneOf.0","typeLabel":"string"},{"type":"null","description":"Customer fiscal-domicile ZIP (DomicilioFiscalReceptor).","isRequired":true,"uniqueKey":"customer.zip.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer.zip","typeLabel":"string | null"},"tax_regime":{"oneOf":[{"type":"string","description":"Customer c_RegimenFiscal code.","isRequired":true,"uniqueKey":"customer.tax_regime.oneOf.0","typeLabel":"string"},{"type":"null","description":"Customer c_RegimenFiscal code.","isRequired":true,"uniqueKey":"customer.tax_regime.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer.tax_regime","typeLabel":"string | null"},"use":{"oneOf":[{"type":"string","description":"Customer c_UsoCFDI code, e.g. \"G03\".","isRequired":true,"uniqueKey":"customer.use.oneOf.0","typeLabel":"string"},{"type":"null","description":"Customer c_UsoCFDI code, e.g. \"G03\".","isRequired":true,"uniqueKey":"customer.use.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"customer.use","typeLabel":"string | null"}},"required":["rfc","name","zip","tax_regime","use"],"additionalProperties":false,"description":"The receptor (customer) as stamped onto the CFDI.","isRequired":true,"uniqueKey":"customer","typeLabel":"object"},"currency":{"type":"string","description":"c_Moneda currency code, e.g. \"MXN\".","isRequired":true,"uniqueKey":"currency","typeLabel":"string"},"subtotal":{"oneOf":[{"type":"string","description":"Sum of line amounts before taxes, decimal string, e.g. \"100.00\".","isRequired":true,"uniqueKey":"subtotal.oneOf.0","typeLabel":"string"},{"type":"null","description":"Sum of line amounts before taxes, decimal string, e.g. \"100.00\".","isRequired":true,"uniqueKey":"subtotal.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"subtotal","typeLabel":"string | null"},"total":{"oneOf":[{"type":"string","description":"Grand total including taxes, decimal string, e.g. \"116.00\".","isRequired":true,"uniqueKey":"total.oneOf.0","typeLabel":"string"},{"type":"null","description":"Grand total including taxes, decimal string, e.g. \"116.00\".","isRequired":true,"uniqueKey":"total.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"total","typeLabel":"string | null"},"uuid":{"oneOf":[{"type":"string","description":"SAT folio fiscal (UUID) once stamped, else null.","isRequired":true,"uniqueKey":"uuid.oneOf.0","typeLabel":"string"},{"type":"null","description":"SAT folio fiscal (UUID) once stamped, else null.","isRequired":true,"uniqueKey":"uuid.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"uuid","typeLabel":"string | null"},"stamped_at":{"oneOf":[{"type":"string","description":"When the CFDI was stamped (ISO-8601 UTC), or null.","isRequired":true,"uniqueKey":"stamped_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"When the CFDI was stamped (ISO-8601 UTC), or null.","isRequired":true,"uniqueKey":"stamped_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"stamped_at","typeLabel":"string | null"},"sello_cfd":{"oneOf":[{"type":"string","description":"Issuer digital seal (Sello del CFDI), or null.","isRequired":true,"uniqueKey":"sello_cfd.oneOf.0","typeLabel":"string"},{"type":"null","description":"Issuer digital seal (Sello del CFDI), or null.","isRequired":true,"uniqueKey":"sello_cfd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sello_cfd","typeLabel":"string | null"},"sello_sat":{"oneOf":[{"type":"string","description":"SAT digital seal from the TimbreFiscalDigital, or null.","isRequired":true,"uniqueKey":"sello_sat.oneOf.0","typeLabel":"string"},{"type":"null","description":"SAT digital seal from the TimbreFiscalDigital, or null.","isRequired":true,"uniqueKey":"sello_sat.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"sello_sat","typeLabel":"string | null"},"no_certificado_sat":{"oneOf":[{"type":"string","description":"SAT certificate serial that timbró the CFDI, or null.","isRequired":true,"uniqueKey":"no_certificado_sat.oneOf.0","typeLabel":"string"},{"type":"null","description":"SAT certificate serial that timbró the CFDI, or null.","isRequired":true,"uniqueKey":"no_certificado_sat.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"no_certificado_sat","typeLabel":"string | null"},"cancellation":{"type":"object","properties":{"status":{"type":"string","enum":["none","cancel_pending","cancelled","cancel_rejected"],"description":"Cancellation state: \"none\" not requested, \"cancel_pending\" awaiting receptor/SAT, \"cancelled\" done, \"cancel_rejected\" receptor rejected.","isRequired":true,"uniqueKey":"cancellation.status","typeLabel":"enum\u003cstring>"},"reason":{"oneOf":[{"type":"string","description":"SAT motivo de cancelación (01-04) if requested, else null.","isRequired":true,"uniqueKey":"cancellation.reason.oneOf.0","typeLabel":"string"},{"type":"null","description":"SAT motivo de cancelación (01-04) if requested, else null.","isRequired":true,"uniqueKey":"cancellation.reason.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"cancellation.reason","typeLabel":"string | null"},"substitute_invoice_id":{"oneOf":[{"type":"string","description":"Replacement CFDI id when cancelled with reason \"01\", else null.","isRequired":true,"uniqueKey":"cancellation.substitute_invoice_id.oneOf.0","typeLabel":"string"},{"type":"null","description":"Replacement CFDI id when cancelled with reason \"01\", else null.","isRequired":true,"uniqueKey":"cancellation.substitute_invoice_id.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"cancellation.substitute_invoice_id","typeLabel":"string | null"},"acuse_available":{"type":"boolean","description":"True when the SAT acuse de cancelación is retrievable.","isRequired":true,"uniqueKey":"cancellation.acuse_available","typeLabel":"boolean"}},"required":["status","reason","substitute_invoice_id","acuse_available"],"additionalProperties":false,"description":"Cancellation status for this CFDI.","isRequired":true,"uniqueKey":"cancellation","typeLabel":"object"},"error":{"oneOf":[{"description":"The last stamping error (problem+json shape) when status is stamp_failed, else null.","isRequired":true,"uniqueKey":"error.oneOf.0","typeLabel":"any"},{"type":"null","description":"The last stamping error (problem+json shape) when status is stamp_failed, else null.","isRequired":true,"uniqueKey":"error.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"error","typeLabel":"any | null"},"xml_url":{"type":"string","description":"Path to download the CFDI XML, e.g. \"/v1/invoices/:id/xml\".","isRequired":true,"uniqueKey":"xml_url","typeLabel":"string"},"pdf_url":{"type":"string","description":"Path to download the CFDI PDF, e.g. \"/v1/invoices/:id/pdf\".","isRequired":true,"uniqueKey":"pdf_url","typeLabel":"string"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","uniqueKey":"metadata.additionalProperties","typeLabel":"string"},"description":"Integrator-owned key-value map echoed back.","isRequired":true,"uniqueKey":"metadata","typeLabel":"object"},"created_at":{"type":"string","description":"Creation timestamp, ISO-8601 UTC.","isRequired":true,"uniqueKey":"created_at","typeLabel":"string"},"updated_at":{"type":"string","description":"Last-update timestamp, ISO-8601 UTC.","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string"},"fiscal_profile":{"description":"The full issuer profile — present only when `?expand=fiscal_profile` is requested.","type":"object","properties":{"object":{"type":"string","description":"Always \"fiscal_profile\".","enum":["fiscal_profile"],"isRequired":true,"uniqueKey":"fiscal_profile.object","typeLabel":"enum\u003cstring>"},"id":{"type":"string","description":"Fiscal-profile id, e.g. \"fp_2P9K3sample\".","isRequired":true,"uniqueKey":"fiscal_profile.id","typeLabel":"string"},"rfc":{"type":"string","description":"Issuer RFC, derived from the CSD certificate.","isRequired":true,"uniqueKey":"fiscal_profile.rfc","typeLabel":"string"},"legal_name":{"type":"string","description":"Issuer legal name (razón social).","isRequired":true,"uniqueKey":"fiscal_profile.legal_name","typeLabel":"string"},"tax_regime":{"type":"string","description":"c_RegimenFiscal code of the issuer, e.g. \"601\".","isRequired":true,"uniqueKey":"fiscal_profile.tax_regime","typeLabel":"string"},"zip":{"type":"string","description":"Issuer fiscal-domicile ZIP (LugarExpedicion).","isRequired":true,"uniqueKey":"fiscal_profile.zip","typeLabel":"string"},"csd":{"type":"object","properties":{"serial":{"type":"string","description":"CSD certificate serial number (número de certificado).","isRequired":true,"uniqueKey":"fiscal_profile.csd.serial","typeLabel":"string"},"valid_from":{"type":"string","description":"CSD validity start, ISO-8601 UTC.","isRequired":true,"uniqueKey":"fiscal_profile.csd.valid_from","typeLabel":"string"},"valid_to":{"type":"string","description":"CSD validity end (expiry), ISO-8601 UTC.","isRequired":true,"uniqueKey":"fiscal_profile.csd.valid_to","typeLabel":"string"},"rfc":{"type":"string","description":"RFC embedded in the CSD certificate.","isRequired":true,"uniqueKey":"fiscal_profile.csd.rfc","typeLabel":"string"}},"required":["serial","valid_from","valid_to","rfc"],"additionalProperties":false,"description":"Public metadata of the stored CSD (never the private key).","isRequired":true,"uniqueKey":"fiscal_profile.csd","typeLabel":"object"},"status":{"type":"string","enum":["requires_action","active"],"description":"Derived readiness state. \"requires_action\": a live profile whose carta manifiesto is not yet signed, so it CANNOT stamp CFDIs. \"active\": the profile can stamp: its manifiesto is signed, or it is a test-mode profile, which never needs one.","isRequired":true,"uniqueKey":"fiscal_profile.status","typeLabel":"enum\u003cstring>"},"sandbox":{"type":"boolean","description":"True for the default test-mode sandbox issuer (SAT test CSD). It only stamps test invoices and is not returned by the list endpoint.","isRequired":true,"uniqueKey":"fiscal_profile.sandbox","typeLabel":"boolean"},"has_fiel":{"type":"boolean","description":"True when a FIEL (e.firma) is stored (used to sign the carta manifiesto and for descarga masiva).","isRequired":true,"uniqueKey":"fiscal_profile.has_fiel","typeLabel":"boolean"},"manifest_status":{"type":"string","enum":["pending_signature","signed"],"description":"Carta-manifiesto signing state.","isRequired":true,"uniqueKey":"fiscal_profile.manifest_status","typeLabel":"enum\u003cstring>"},"manifest_signed_at":{"oneOf":[{"type":"string","description":"When the carta manifiesto was signed (ISO-8601 UTC), or null if unsigned.","isRequired":true,"uniqueKey":"fiscal_profile.manifest_signed_at.oneOf.0","typeLabel":"string"},{"type":"null","description":"When the carta manifiesto was signed (ISO-8601 UTC), or null if unsigned.","isRequired":true,"uniqueKey":"fiscal_profile.manifest_signed_at.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"fiscal_profile.manifest_signed_at","typeLabel":"string | null"},"next_actions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Stable, machine-readable action identifier, e.g. \"sign_manifest\".","isRequired":true,"uniqueKey":"fiscal_profile.next_actions.items.[INDEX].type","typeLabel":"string"},"message":{"type":"string","description":"Human- and agent-readable explanation of what to do and why.","isRequired":true,"uniqueKey":"fiscal_profile.next_actions.items.[INDEX].message","typeLabel":"string"},"endpoint":{"type":"string","description":"The exact API call that performs the action, e.g. \"POST /v1/fiscal_profiles/fp_123/manifest\".","isRequired":true,"uniqueKey":"fiscal_profile.next_actions.items.[INDEX].endpoint","typeLabel":"string"},"requires":{"type":"array","items":{"type":"string","uniqueKey":"fiscal_profile.next_actions.items.[INDEX].requires.items.[INDEX]","typeLabel":"string"},"description":"Inputs the action needs, e.g. [\"fiel\"] — the taxpayer's FIEL (e.firma).","isRequired":true,"uniqueKey":"fiscal_profile.next_actions.items.[INDEX].requires","typeLabel":"string[]"}},"required":["type","message","endpoint","requires"],"additionalProperties":false,"uniqueKey":"fiscal_profile.next_actions.items.[INDEX]","typeLabel":"object"},"description":"Actions to make this profile active (identical content to pending_actions). Empty when active.","isRequired":true,"uniqueKey":"fiscal_profile.next_actions","typeLabel":"object[]"},"pending_actions":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string","description":"Stable, machine-readable action identifier, e.g. \"sign_manifest\".","isRequired":true,"uniqueKey":"fiscal_profile.pending_actions.items.[INDEX].type","typeLabel":"string"},"message":{"type":"string","description":"Human- and agent-readable explanation of what to do and why.","isRequired":true,"uniqueKey":"fiscal_profile.pending_actions.items.[INDEX].message","typeLabel":"string"},"endpoint":{"type":"string","description":"The exact API call that performs the action, e.g. \"POST /v1/fiscal_profiles/fp_123/manifest\".","isRequired":true,"uniqueKey":"fiscal_profile.pending_actions.items.[INDEX].endpoint","typeLabel":"string"},"requires":{"type":"array","items":{"type":"string","uniqueKey":"fiscal_profile.pending_actions.items.[INDEX].requires.items.[INDEX]","typeLabel":"string"},"description":"Inputs the action needs, e.g. [\"fiel\"] — the taxpayer's FIEL (e.firma).","isRequired":true,"uniqueKey":"fiscal_profile.pending_actions.items.[INDEX].requires","typeLabel":"string[]"}},"required":["type","message","endpoint","requires"],"additionalProperties":false,"uniqueKey":"fiscal_profile.pending_actions.items.[INDEX]","typeLabel":"object"},"description":"Outstanding actions before this profile can stamp CFDIs (identical content to next_actions). Empty when active.","isRequired":true,"uniqueKey":"fiscal_profile.pending_actions","typeLabel":"object[]"},"metadata":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string","uniqueKey":"fiscal_profile.metadata.additionalProperties","typeLabel":"string"},"description":"Integrator-owned key-value map echoed back.","isRequired":true,"uniqueKey":"fiscal_profile.metadata","typeLabel":"object"},"brand_color":{"oneOf":[{"type":"string","description":"PDF accent color (#RRGGBB), or null if unset.","isRequired":true,"uniqueKey":"fiscal_profile.brand_color.oneOf.0","typeLabel":"string"},{"type":"null","description":"PDF accent color (#RRGGBB), or null if unset.","isRequired":true,"uniqueKey":"fiscal_profile.brand_color.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"fiscal_profile.brand_color","typeLabel":"string | null"},"has_logo":{"type":"boolean","description":"Whether a PDF logo is stored (the raw data URL is not echoed to keep responses small).","isRequired":true,"uniqueKey":"fiscal_profile.has_logo","typeLabel":"boolean"},"livemode":{"type":"boolean","description":"True if this profile was created with a live-mode key.","isRequired":true,"uniqueKey":"fiscal_profile.livemode","typeLabel":"boolean"},"created_at":{"type":"string","description":"Creation timestamp, ISO-8601 UTC.","isRequired":true,"uniqueKey":"fiscal_profile.created_at","typeLabel":"string"},"updated_at":{"type":"string","description":"Last-update timestamp, ISO-8601 UTC.","isRequired":true,"uniqueKey":"fiscal_profile.updated_at","typeLabel":"string"}},"required":["object","id","rfc","legal_name","tax_regime","zip","csd","status","sandbox","has_fiel","manifest_status","manifest_signed_at","next_actions","pending_actions","metadata","brand_color","has_logo","livemode","created_at","updated_at"],"additionalProperties":false,"uniqueKey":"fiscal_profile","typeLabel":"object"}},"required":["object","id","livemode","status","type","fiscal_profile_id","serie","folio","customer","currency","subtotal","total","uuid","stamped_at","sello_cfd","sello_sat","no_certificado_sat","cancellation","error","xml_url","pdf_url","metadata","created_at","updated_at"],"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"example":{"object":"invoice","id":"obj_2P9K3sample","livemode":false,"status":"draft","type":"I","fiscal_profile_id":"fp_2P9K3sample","serie":"string","folio":"string","customer":{"rfc":"XAXX010101000","name":"string","zip":"string","tax_regime":"string","use":"string"},"currency":"MXN","subtotal":"116.00","total":"116.00","uuid":"5FB2822E-396D-4725-8521-CDC4BDD20CCF","stamped_at":"2026-07-10T18:25:43Z","sello_cfd":"string","sello_sat":"string","no_certificado_sat":"string","cancellation":{"status":"none","reason":"string","substitute_invoice_id":"inv_2P9K3sample","acuse_available":true},"error":"string","xml_url":"https://example.com/webhooks/invoice","pdf_url":"https://example.com/webhooks/invoice","metadata":{},"fiscal_profile":{"object":"fiscal_profile","id":"obj_2P9K3sample","rfc":"XAXX010101000","legal_name":"string","tax_regime":"string","zip":"string","csd":{"serial":"string","valid_from":"string","valid_to":"string","rfc":"XAXX010101000"},"status":"requires_action","sandbox":true,"has_fiel":true,"manifest_status":"pending_signature","manifest_signed_at":"2026-07-10T18:25:43Z","next_actions":[{"type":"string","message":"string","endpoint":"string","requires":["string"]}],"pending_actions":[{"type":"string","message":"string","endpoint":"string","requires":["string"]}],"metadata":{},"brand_color":"string","has_logo":true,"livemode":false,"created_at":"2026-07-10T18:25:43Z","updated_at":"2026-07-10T18:25:43Z"},"created_at":"2026-07-10T18:25:43Z","updated_at":"2026-07-10T18:25:43Z"},"examples":{"Example":{"title":"Example","value":{"object":"invoice","id":"obj_2P9K3sample","livemode":false,"status":"draft","type":"I","fiscal_profile_id":"fp_2P9K3sample","serie":"string","folio":"string","customer":{"rfc":"XAXX010101000","name":"string","zip":"string","tax_regime":"string","use":"string"},"currency":"MXN","subtotal":"116.00","total":"116.00","uuid":"5FB2822E-396D-4725-8521-CDC4BDD20CCF","stamped_at":"2026-07-10T18:25:43Z","sello_cfd":"string","sello_sat":"string","no_certificado_sat":"string","cancellation":{"status":"none","reason":"string","substitute_invoice_id":"inv_2P9K3sample","acuse_available":true},"error":"string","xml_url":"https://example.com/webhooks/invoice","pdf_url":"https://example.com/webhooks/invoice","metadata":{},"fiscal_profile":{"object":"fiscal_profile","id":"obj_2P9K3sample","rfc":"XAXX010101000","legal_name":"string","tax_regime":"string","zip":"string","csd":{"serial":"string","valid_from":"string","valid_to":"string","rfc":"XAXX010101000"},"status":"requires_action","sandbox":true,"has_fiel":true,"manifest_status":"pending_signature","manifest_signed_at":"2026-07-10T18:25:43Z","next_actions":[{"type":"string","message":"string","endpoint":"string","requires":["string"]}],"pending_actions":[{"type":"string","message":"string","endpoint":"string","requires":["string"]}],"metadata":{},"brand_color":"string","has_logo":true,"livemode":false,"created_at":"2026-07-10T18:25:43Z","updated_at":"2026-07-10T18:25:43Z"},"created_at":"2026-07-10T18:25:43Z","updated_at":"2026-07-10T18:25:43Z"}}},"exampleType":"examples"}},"headers":{"Request-Id":{"description":"Unique id for this request. Also the `request_id` in every error body — log it and quote it to support; idempotency keys off it too.","schema":{"type":"string","example":"req_2P9K3sample"}},"Invoice-Version":{"description":"The dated API version resolved for this request (request header → key pin → current). Echoed on every response.","schema":{"type":"string","example":"2026-07-15"}},"traceparent":{"description":"W3C Trace Context. When you send a valid `traceparent`, the response continues the trace (same trace-id, a fresh span-id, sampled flag).","schema":{"type":"string","example":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"}},"RateLimit-Limit":{"description":"IETF draft rate-limit: the ceiling of the token bucket consulted for this request class (reads and writes have independent buckets).","schema":{"type":"integer","example":100}},"RateLimit-Remaining":{"description":"IETF draft rate-limit: tokens left in the bucket after this request.","schema":{"type":"integer","example":99}},"RateLimit-Reset":{"description":"IETF draft rate-limit: seconds until the bucket refills to its ceiling.","schema":{"type":"integer","example":1}}},"exampleType":"examples"},"8e198b49-c90d-4a47-a9f9-6f85f3587db7":{"description":"Missing or invalid API key.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem+json error with agent-first extensions.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable dotted machine code to switch on.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"remediation":{"type":"string","description":"Actionable next step for a human or agent.","uniqueKey":"remediation","typeLabel":"string"},"pac":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"pac.provider","typeLabel":"string"},"codigo":{"type":"string","uniqueKey":"pac.codigo","typeLabel":"string"},"mensaje":{"type":"string","uniqueKey":"pac.mensaje","typeLabel":"string"}},"uniqueKey":"pac","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["type","title","status","code","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://errors.invoiceapi.mx/auth_unauthorized","title":"Authentication required","status":401,"code":"auth.unauthorized","detail":"Missing or invalid API key.","remediation":"Send `Authorization: Bearer sk_test_...` (or sk_live_...) with a valid API key.","doc_url":"/docs/errors#auth-unauthorized","request_id":"req_2P9K3sample"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.invoiceapi.mx/auth_unauthorized","title":"Authentication required","status":401,"code":"auth.unauthorized","detail":"Missing or invalid API key.","remediation":"Send `Authorization: Bearer sk_test_...` (or sk_live_...) with a valid API key.","doc_url":"/docs/errors#auth-unauthorized","request_id":"req_2P9K3sample"}}},"exampleType":"examples"}},"headers":{"Request-Id":{"description":"Unique id for this request. Also the `request_id` in every error body — log it and quote it to support; idempotency keys off it too.","schema":{"type":"string","example":"req_2P9K3sample"}},"Invoice-Version":{"description":"The dated API version resolved for this request (request header → key pin → current). Echoed on every response.","schema":{"type":"string","example":"2026-07-15"}},"traceparent":{"description":"W3C Trace Context. When you send a valid `traceparent`, the response continues the trace (same trace-id, a fresh span-id, sampled flag).","schema":{"type":"string","example":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"}}},"exampleType":"examples"},"ca43443f-c3a6-4355-a9cf-a29a015f8b14":{"description":"Conflict (e.g. idempotency/state).","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem+json error with agent-first extensions.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable dotted machine code to switch on.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"remediation":{"type":"string","description":"Actionable next step for a human or agent.","uniqueKey":"remediation","typeLabel":"string"},"pac":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"pac.provider","typeLabel":"string"},"codigo":{"type":"string","uniqueKey":"pac.codigo","typeLabel":"string"},"mensaje":{"type":"string","uniqueKey":"pac.mensaje","typeLabel":"string"}},"uniqueKey":"pac","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["type","title","status","code","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://errors.invoiceapi.mx/invoice_already_stamped","title":"Invoice already stamped","status":409,"code":"invoice.already_stamped","detail":"This invoice is already stamped.","remediation":"Fetch the stamped invoice; do not re-stamp.","doc_url":"/docs/errors#invoice-already_stamped","request_id":"req_2P9K3sample"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.invoiceapi.mx/invoice_already_stamped","title":"Invoice already stamped","status":409,"code":"invoice.already_stamped","detail":"This invoice is already stamped.","remediation":"Fetch the stamped invoice; do not re-stamp.","doc_url":"/docs/errors#invoice-already_stamped","request_id":"req_2P9K3sample"}}},"exampleType":"examples"}},"headers":{"Request-Id":{"description":"Unique id for this request. Also the `request_id` in every error body — log it and quote it to support; idempotency keys off it too.","schema":{"type":"string","example":"req_2P9K3sample"}},"Invoice-Version":{"description":"The dated API version resolved for this request (request header → key pin → current). Echoed on every response.","schema":{"type":"string","example":"2026-07-15"}},"traceparent":{"description":"W3C Trace Context. When you send a valid `traceparent`, the response continues the trace (same trace-id, a fresh span-id, sampled flag).","schema":{"type":"string","example":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"}}},"exampleType":"examples"},"ef43d617-2c19-4a7b-94a7-af29a2c28002":{"description":"Request validation failed.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem+json error with agent-first extensions.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable dotted machine code to switch on.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"remediation":{"type":"string","description":"Actionable next step for a human or agent.","uniqueKey":"remediation","typeLabel":"string"},"pac":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"pac.provider","typeLabel":"string"},"codigo":{"type":"string","uniqueKey":"pac.codigo","typeLabel":"string"},"mensaje":{"type":"string","uniqueKey":"pac.mensaje","typeLabel":"string"}},"uniqueKey":"pac","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["type","title","status","code","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://errors.invoiceapi.mx/cfdi_invalid_input","title":"Invalid invoice","status":422,"code":"cfdi.invalid_input","detail":"items.0.unit_price: expected a decimal string.","remediation":"Fix every field listed in `errors` and resubmit. See /openapi.json for the schema.","doc_url":"/docs/errors#cfdi-invalid_input","request_id":"req_2P9K3sample"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.invoiceapi.mx/cfdi_invalid_input","title":"Invalid invoice","status":422,"code":"cfdi.invalid_input","detail":"items.0.unit_price: expected a decimal string.","remediation":"Fix every field listed in `errors` and resubmit. See /openapi.json for the schema.","doc_url":"/docs/errors#cfdi-invalid_input","request_id":"req_2P9K3sample"}}},"exampleType":"examples"}},"headers":{"Request-Id":{"description":"Unique id for this request. Also the `request_id` in every error body — log it and quote it to support; idempotency keys off it too.","schema":{"type":"string","example":"req_2P9K3sample"}},"Invoice-Version":{"description":"The dated API version resolved for this request (request header → key pin → current). Echoed on every response.","schema":{"type":"string","example":"2026-07-15"}},"traceparent":{"description":"W3C Trace Context. When you send a valid `traceparent`, the response continues the trace (same trace-id, a fresh span-id, sampled flag).","schema":{"type":"string","example":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"}}},"exampleType":"examples"},"91b08b79-c9a8-41dd-a784-29b410794c98":{"description":"Rate limit exceeded — back off per the Retry-After header.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem+json error with agent-first extensions.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable dotted machine code to switch on.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"remediation":{"type":"string","description":"Actionable next step for a human or agent.","uniqueKey":"remediation","typeLabel":"string"},"pac":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"pac.provider","typeLabel":"string"},"codigo":{"type":"string","uniqueKey":"pac.codigo","typeLabel":"string"},"mensaje":{"type":"string","uniqueKey":"pac.mensaje","typeLabel":"string"}},"uniqueKey":"pac","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["type","title","status","code","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://errors.invoiceapi.mx/rate_limit_exceeded","title":"Rate limit exceeded","status":429,"code":"rate_limit.exceeded","detail":"Too many requests for this key + request class (reads and writes are limited separately).","remediation":"Back off and retry after the number of seconds in the Retry-After header; batch work or lower your request rate.","doc_url":"/docs/errors#rate_limit-exceeded","request_id":"req_2P9K3sample"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.invoiceapi.mx/rate_limit_exceeded","title":"Rate limit exceeded","status":429,"code":"rate_limit.exceeded","detail":"Too many requests for this key + request class (reads and writes are limited separately).","remediation":"Back off and retry after the number of seconds in the Retry-After header; batch work or lower your request rate.","doc_url":"/docs/errors#rate_limit-exceeded","request_id":"req_2P9K3sample"}}},"exampleType":"examples"}},"headers":{"Request-Id":{"description":"Unique id for this request. Also the `request_id` in every error body — log it and quote it to support; idempotency keys off it too.","schema":{"type":"string","example":"req_2P9K3sample"}},"Invoice-Version":{"description":"The dated API version resolved for this request (request header → key pin → current). Echoed on every response.","schema":{"type":"string","example":"2026-07-15"}},"traceparent":{"description":"W3C Trace Context. When you send a valid `traceparent`, the response continues the trace (same trace-id, a fresh span-id, sampled flag).","schema":{"type":"string","example":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"}},"RateLimit-Limit":{"description":"IETF draft rate-limit: the ceiling of the token bucket consulted for this request class (reads and writes have independent buckets).","schema":{"type":"integer","example":100}},"RateLimit-Remaining":{"description":"IETF draft rate-limit: tokens left in the bucket after this request.","schema":{"type":"integer","example":99}},"RateLimit-Reset":{"description":"IETF draft rate-limit: seconds until the bucket refills to its ceiling.","schema":{"type":"integer","example":1}},"Retry-After":{"description":"Seconds to wait before retrying (RFC 9110). Present on 429 and on retryable upstream failures.","schema":{"type":"integer","example":1}}},"exampleType":"examples"},"5d4d3753-1555-4018-a43b-82fbe52e432a":{"description":"Internal server error.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem+json error with agent-first extensions.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable dotted machine code to switch on.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"remediation":{"type":"string","description":"Actionable next step for a human or agent.","uniqueKey":"remediation","typeLabel":"string"},"pac":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"pac.provider","typeLabel":"string"},"codigo":{"type":"string","uniqueKey":"pac.codigo","typeLabel":"string"},"mensaje":{"type":"string","uniqueKey":"pac.mensaje","typeLabel":"string"}},"uniqueKey":"pac","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["type","title","status","code","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://errors.invoiceapi.mx/internal_error","title":"Internal server error","status":500,"code":"internal.error","detail":"An unexpected error occurred.","remediation":"Retry later; contact support with the request_id if it persists.","doc_url":"/docs/errors#internal-error","request_id":"req_2P9K3sample"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.invoiceapi.mx/internal_error","title":"Internal server error","status":500,"code":"internal.error","detail":"An unexpected error occurred.","remediation":"Retry later; contact support with the request_id if it persists.","doc_url":"/docs/errors#internal-error","request_id":"req_2P9K3sample"}}},"exampleType":"examples"}},"headers":{"Request-Id":{"description":"Unique id for this request. Also the `request_id` in every error body — log it and quote it to support; idempotency keys off it too.","schema":{"type":"string","example":"req_2P9K3sample"}},"Invoice-Version":{"description":"The dated API version resolved for this request (request header → key pin → current). Echoed on every response.","schema":{"type":"string","example":"2026-07-15"}},"traceparent":{"description":"W3C Trace Context. When you send a valid `traceparent`, the response continues the trace (same trace-id, a fresh span-id, sampled flag).","schema":{"type":"string","example":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"}}},"exampleType":"examples"},"40f62cb2-1a85-4007-a659-6b1056331577":{"description":"PAC/SAT transient failure.","content":{"application/problem+json":{"schema":{"type":"object","description":"RFC 9457 problem+json error with agent-first extensions.","properties":{"type":{"type":"string","format":"uri","isRequired":true,"uniqueKey":"type","typeLabel":"string\u003curi>"},"title":{"type":"string","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"status":{"type":"integer","isRequired":true,"uniqueKey":"status","typeLabel":"integer"},"code":{"type":"string","description":"Stable dotted machine code to switch on.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"request_id":{"type":"string","isRequired":true,"uniqueKey":"request_id","typeLabel":"string"},"detail":{"type":"string","uniqueKey":"detail","typeLabel":"string"},"remediation":{"type":"string","description":"Actionable next step for a human or agent.","uniqueKey":"remediation","typeLabel":"string"},"pac":{"type":"object","properties":{"provider":{"type":"string","uniqueKey":"pac.provider","typeLabel":"string"},"codigo":{"type":"string","uniqueKey":"pac.codigo","typeLabel":"string"},"mensaje":{"type":"string","uniqueKey":"pac.mensaje","typeLabel":"string"}},"uniqueKey":"pac","typeLabel":"object"},"errors":{"type":"array","items":{"type":"object","properties":{"field":{"type":"string","uniqueKey":"errors.items.[INDEX].field","typeLabel":"string"},"message":{"type":"string","uniqueKey":"errors.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"errors.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors","typeLabel":"object[]"}},"required":["type","title","status","code","request_id"],"uniqueKey":"","typeLabel":"object"},"example":{"type":"https://errors.invoiceapi.mx/pac_internal_error","title":"PAC internal error","status":502,"code":"pac.internal_error","detail":"The stamping service reported a transient internal error.","remediation":"Retry with backoff.","doc_url":"/docs/errors#pac-internal_error","request_id":"req_2P9K3sample"},"examples":{"Example":{"title":"Example","value":{"type":"https://errors.invoiceapi.mx/pac_internal_error","title":"PAC internal error","status":502,"code":"pac.internal_error","detail":"The stamping service reported a transient internal error.","remediation":"Retry with backoff.","doc_url":"/docs/errors#pac-internal_error","request_id":"req_2P9K3sample"}}},"exampleType":"examples"}},"headers":{"Request-Id":{"description":"Unique id for this request. Also the `request_id` in every error body — log it and quote it to support; idempotency keys off it too.","schema":{"type":"string","example":"req_2P9K3sample"}},"Invoice-Version":{"description":"The dated API version resolved for this request (request header → key pin → current). Echoed on every response.","schema":{"type":"string","example":"2026-07-15"}},"traceparent":{"description":"W3C Trace Context. When you send a valid `traceparent`, the response continues the trace (same trace-id, a fresh span-id, sampled flag).","schema":{"type":"string","example":"00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-01"}}},"exampleType":"examples"}},"security":{"e1ec91d2-3bec-4f58-a497-048f82e6106b":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key: `Authorization: Bearer sk_test_...` or `sk_live_...`.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"27cbbabf-b868-4dd7-9f42-82ed41e06a45":{"url":"https://api.newinvoice.dev","description":"Production"},"22831049-409c-435a-9033-cccf2eda1b9e":{"url":"http://localhost:3000","description":"Local development"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"API key: `Authorization: Bearer sk_test_...` or `sk_live_...`.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"API key: `Authorization: Bearer sk_test_...` or `sk_live_...`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"invoiceapi","siteName":"Invoice API","title":"Create an invoice - Invoice API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-10T17:48:27.393Z","originalFileLocation":"api-reference/invoices/create-an-invoice.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=\"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from fiscal_profile_id, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): customer and at least one items line, each with product_key, unit_key, quantity, and unit_price, plus payment_form and payment_method (PUE|PPD; PPD forces payment_form \u0026quot;99\u0026quot;), and a use (invoice-level or customer.use). Type E (nota de crédito) also requires relation ({ type \u0026quot;01\u0026quot; or \u0026quot;03\u0026quot;, uuids }). Type P (pago): omit items/payment_form/payment_method and supply payments (complemento de pagos 2.0). Set draft: true to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Invoice API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/invoiceapi/BFU6Hg8PMnpYZfzc/_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/invoiceapi/BFU6Hg8PMnpYZfzc/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/invoiceapi/BFU6Hg8PMnpYZfzc/_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/invoiceapi/BFU6Hg8PMnpYZfzc/_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/invoiceapi/BFU6Hg8PMnpYZfzc/_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/invoiceapi/BFU6Hg8PMnpYZfzc/_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/invoiceapi/BFU6Hg8PMnpYZfzc/_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/invoiceapi/BFU6Hg8PMnpYZfzc/_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/invoiceapi/BFU6Hg8PMnpYZfzc/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create an invoice - Invoice API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from fiscal_profile_id, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): customer and at least one items line, each with product_key, unit_key, quantity, and unit_price, plus payment_form and payment_method (PUE|PPD; PPD forces payment_form \u0026quot;99\u0026quot;), and a use (invoice-level or customer.use). Type E (nota de crédito) also requires relation ({ type \u0026quot;01\u0026quot; or \u0026quot;03\u0026quot;, uuids }). Type P (pago): omit items/payment_form/payment_method and supply payments (complemento de pagos 2.0). Set draft: true to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Invoice API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://invoiceapi.mintlify.site/_mintlify/api/og/v2?division=invoices\u0026amp;title=Create+an+invoice\u0026amp;description=Build+and+stamp+a+CFDI+4.0+from+friendly+JSON.+The+issuer+comes+from+%60fiscal_profile_id%60%2C+which+is+required+in+live+mode.+In+test+mode+you+may+omit+it+while+you\u0026amp;theme=55d6e0c1f80b6a9d3c7b0ddc\u0026amp;signature=4a9615af600dfd7a9f58ea4e369d8af76cfaee748f44f329689148bc1d7694d3\">\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=\"Create an invoice - Invoice API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from fiscal_profile_id, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): customer and at least one items line, each with product_key, unit_key, quantity, and unit_price, plus payment_form and payment_method (PUE|PPD; PPD forces payment_form \u0026quot;99\u0026quot;), and a use (invoice-level or customer.use). Type E (nota de crédito) also requires relation ({ type \u0026quot;01\u0026quot; or \u0026quot;03\u0026quot;, uuids }). Type P (pago): omit items/payment_form/payment_method and supply payments (complemento de pagos 2.0). Set draft: true to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://invoiceapi.mintlify.site/_mintlify/api/og/v2?division=invoices\u0026amp;title=Create+an+invoice\u0026amp;description=Build+and+stamp+a+CFDI+4.0+from+friendly+JSON.+The+issuer+comes+from+%60fiscal_profile_id%60%2C+which+is+required+in+live+mode.+In+test+mode+you+may+omit+it+while+you\u0026amp;theme=55d6e0c1f80b6a9d3c7b0ddc\u0026amp;signature=4a9615af600dfd7a9f58ea4e369d8af76cfaee748f44f329689148bc1d7694d3\">\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/invoiceapi/BFU6Hg8PMnpYZfzc/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Invoice API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#16a34a\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice\">\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/create-an-invoice.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.newinvoice.dev/#organization\",\"name\":\"Invoice API\",\"url\":\"https://docs.newinvoice.dev\"},{\"@type\":\"WebSite\",\"@id\":\"https://docs.newinvoice.dev#website\",\"name\":\"Invoice API\",\"url\":\"https://docs.newinvoice.dev\",\"publisher\":{\"@id\":\"https://docs.newinvoice.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice#webpage\",\"url\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice\",\"name\":\"Create an invoice\",\"description\":\"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from fiscal_profile_id, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): customer and at least one items line, each with product_key, unit_key, quantity, and unit_price, plus payment_form and payment_method (PUE|PPD; PPD forces payment_form \\\"99\\\"), and a use (invoice-level or customer.use). Type E (nota de crédito) also requires relation ({ type \\\"01\\\" or \\\"03\\\", uuids }). Type P (pago): omit items/payment_form/payment_method and supply payments (complemento de pagos 2.0). Set draft: true to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.\",\"dateModified\":\"2026-11-10T17:48:27.393Z\",\"isPartOf\":{\"@id\":\"https://docs.newinvoice.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"invoices\",\"item\":\"https://docs.newinvoice.dev/api-reference/invoices/list-invoices\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create an invoice\",\"item\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice#apireference\",\"headline\":\"Create an invoice\",\"name\":\"Create an invoice\",\"description\":\"Build and stamp a CFDI 4.0 from friendly JSON. The issuer comes from fiscal_profile_id, which is required in live mode. In test mode you may omit it while your organization has no test fiscal profile of its own: the invoice is issued from a default sandbox issuer (the SAT test RFC EKU9003173C9) with a generated folio. Every other field is validated in the service, which returns a precise error with remediation if something is missing or wrong. Required for type I (ingreso) and E (egreso): customer and at least one items line, each with product_key, unit_key, quantity, and unit_price, plus payment_form and payment_method (PUE|PPD; PPD forces payment_form \\\"99\\\"), and a use (invoice-level or customer.use). Type E (nota de crédito) also requires relation ({ type \\\"01\\\" or \\\"03\\\", uuids }). Type P (pago): omit items/payment_form/payment_method and supply payments (complemento de pagos 2.0). Set draft: true to hold a signed draft and stamp it later. Send an Idempotency-Key to make retries safe.\",\"url\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice\",\"mainEntityOfPage\":{\"@id\":\"https://docs.newinvoice.dev/api-reference/invoices/create-an-invoice#webpage\"},\"dateModified\":\"2026-11-10T17:48:27.393Z\",\"publisher\":{\"@id\":\"https://docs.newinvoice.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.newinvoice.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Invoice API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Invoice API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/invoices/create-an-invoice.md","siteName":"Invoice API","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Get ","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /","href":"/api-reference/get-"},{"title":"Get healthz","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /healthz","href":"/api-reference/get-healthz"},{"title":"Get health","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /health","href":"/api-reference/get-health"},{"title":"Get openapijson","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /openapi.json","href":"/api-reference/get-openapijson"},{"title":"Get llmstxt","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /llms.txt","href":"/api-reference/get-llmstxt"},{"title":"Get llms fulltxt","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /llms-full.txt","href":"/api-reference/get-llms-fulltxt"},{"title":"Get docserrors","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /docs/errors","href":"/api-reference/get-docserrors"}]},{"group":"docs","pages":[{"title":"Serve a how-to guide as markdown.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /docs/guides/{slug}","href":"/api-reference/docs/serve-a-how-to-guide-as-markdown"}]},{"group":"api_keys","pages":[{"title":"List API keys","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/api_keys","href":"/api-reference/api_keys/list-api-keys"},{"title":"Create an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/api_keys","href":"/api-reference/api_keys/create-an-api-key"},{"title":"Revoke an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/api_keys/{id}","href":"/api-reference/api_keys/revoke-an-api-key"},{"title":"Update an API key","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/api_keys/{id}","href":"/api-reference/api_keys/update-an-api-key"}]},{"group":"accounts","pages":[{"title":"List connected accounts","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/accounts","href":"/api-reference/accounts/list-connected-accounts"},{"title":"Create a connected account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/accounts","href":"/api-reference/accounts/create-a-connected-account"},{"title":"Retrieve a connected account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/accounts/{id}","href":"/api-reference/accounts/retrieve-a-connected-account"},{"title":"Offboard a connected account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/accounts/{id}","href":"/api-reference/accounts/offboard-a-connected-account"},{"title":"Update a connected account","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/accounts/{id}","href":"/api-reference/accounts/update-a-connected-account"}]},{"group":"fiscal_profiles","pages":[{"title":"List fiscal profiles","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/fiscal_profiles","href":"/api-reference/fiscal_profiles/list-fiscal-profiles"},{"title":"Create a fiscal profile","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/fiscal_profiles","href":"/api-reference/fiscal_profiles/create-a-fiscal-profile"},{"title":"Retrieve a fiscal profile","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/fiscal_profiles/{id}","href":"/api-reference/fiscal_profiles/retrieve-a-fiscal-profile"},{"title":"Delete a fiscal profile","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/fiscal_profiles/{id}","href":"/api-reference/fiscal_profiles/delete-a-fiscal-profile"},{"title":"Update a fiscal profile","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/fiscal_profiles/{id}","href":"/api-reference/fiscal_profiles/update-a-fiscal-profile"},{"title":"Sign the carta manifiesto","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/fiscal_profiles/{id}/manifest","href":"/api-reference/fiscal_profiles/sign-the-carta-manifiesto"},{"title":"Enable automatic SAT synchronization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/fiscal_profiles/{id}/sync","href":"/api-reference/fiscal_profiles/enable-automatic-sat-synchronization"},{"title":"Disable automatic SAT synchronization","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/fiscal_profiles/{id}/sync","href":"/api-reference/fiscal_profiles/disable-automatic-sat-synchronization"},{"title":"Read a SAT credential status","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/fiscal_profiles/{id}/sat_credential","href":"/api-reference/fiscal_profiles/read-a-sat-credential-status"},{"title":"Save a SAT credential (CIEC or FIEL)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/fiscal_profiles/{id}/sat_credential","href":"/api-reference/fiscal_profiles/save-a-sat-credential-ciec-or-fiel"},{"title":"Revoke a SAT credential","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/fiscal_profiles/{id}/sat_credential","href":"/api-reference/fiscal_profiles/revoke-a-sat-credential"}]},{"group":"invoices","pages":[{"title":"List invoices","description":"List invoices newest-first with cursor pagination. Filter by status, customer_rfc, and created_at date range. Pass `expand=fiscal_profile` to inline the issuer on each row.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/invoices","href":"/api-reference/invoices/list-invoices"},{"title":"Create an invoice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/invoices","href":"/api-reference/invoices/create-an-invoice"},{"title":"Stamp a draft invoice","description":"Stamp a previously created draft, turning it into a fiscal CFDI with a SAT UUID. Re-signs with a fresh Fecha if the draft is near the SAT 72-hour window. No-op-safe: an already-stamped invoice returns 409 invoice.already_stamped.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/invoices/{id}/stamp","href":"/api-reference/invoices/stamp-a-draft-invoice"},{"title":"Retrieve an invoice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/invoices/{id}","href":"/api-reference/invoices/retrieve-an-invoice"},{"title":"Download the CFDI XML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/invoices/{id}/xml","href":"/api-reference/invoices/download-the-cfdi-xml"},{"title":"Download the CFDI PDF","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/invoices/{id}/pdf","href":"/api-reference/invoices/download-the-cfdi-pdf"},{"title":"Cancel an invoice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/invoices/{id}/cancel","href":"/api-reference/invoices/cancel-an-invoice"}]},{"group":"validations","pages":[{"title":"Validate a CFDI","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/validations","href":"/api-reference/validations/validate-a-cfdi"},{"title":"Retrieve a validation","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/validations/{id}","href":"/api-reference/validations/retrieve-a-validation"}]},{"group":"ticket_invoices","pages":[{"title":"List ticket invoices","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ticket_invoices","href":"/api-reference/ticket_invoices/list-ticket-invoices"},{"title":"Self-invoice a ticket from a photo","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/ticket_invoices","href":"/api-reference/ticket_invoices/self-invoice-a-ticket-from-a-photo"},{"title":"Retrieve a ticket invoice","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ticket_invoices/{id}","href":"/api-reference/ticket_invoices/retrieve-a-ticket-invoice"},{"title":"Download the CFDI XML","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/ticket_invoices/{id}/xml","href":"/api-reference/ticket_invoices/download-the-cfdi-xml"},{"title":"List learned portal recipes","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/portal_recipes","href":"/api-reference/ticket_invoices/list-learned-portal-recipes"}]},{"group":"downloads","pages":[{"title":"List massive downloads","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/downloads","href":"/api-reference/downloads/list-massive-downloads"},{"title":"Request a massive download","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/downloads","href":"/api-reference/downloads/request-a-massive-download"},{"title":"Retrieve a massive download","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/downloads/{id}","href":"/api-reference/downloads/retrieve-a-massive-download"},{"title":"List download packages","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/downloads/{id}/files","href":"/api-reference/downloads/list-download-packages"},{"title":"Download the delivery report","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/downloads/{id}/report","href":"/api-reference/downloads/download-the-delivery-report"},{"title":"Download a package","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/downloads/{id}/files/{seq}","href":"/api-reference/downloads/download-a-package"}]},{"group":"sat_documents","pages":[{"title":"List CFDIs the SAT has on file","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/sat_documents","href":"/api-reference/sat_documents/list-cfdis-the-sat-has-on-file"}]},{"group":"fiscal_documents","pages":[{"title":"List fiscal documents","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/fiscal_documents","href":"/api-reference/fiscal_documents/list-fiscal-documents"},{"title":"Request a constancia","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/fiscal_documents","href":"/api-reference/fiscal_documents/request-a-constancia"},{"title":"Retrieve a fiscal document","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/fiscal_documents/{id}","href":"/api-reference/fiscal_documents/retrieve-a-fiscal-document"},{"title":"Download the PDF","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/fiscal_documents/{id}/pdf","href":"/api-reference/fiscal_documents/download-the-pdf"}]},{"group":"webhook_endpoints","pages":[{"title":"List webhook endpoints","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook_endpoints","href":"/api-reference/webhook_endpoints/list-webhook-endpoints"},{"title":"Create a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/webhook_endpoints","href":"/api-reference/webhook_endpoints/create-a-webhook-endpoint"},{"title":"List webhook deliveries","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook_endpoints/{id}/deliveries","href":"/api-reference/webhook_endpoints/list-webhook-deliveries"},{"title":"Retrieve a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/webhook_endpoints/{id}","href":"/api-reference/webhook_endpoints/retrieve-a-webhook-endpoint"},{"title":"Delete a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json delete /v1/webhook_endpoints/{id}","href":"/api-reference/webhook_endpoints/delete-a-webhook-endpoint"},{"title":"Update a webhook endpoint","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json patch /v1/webhook_endpoints/{id}","href":"/api-reference/webhook_endpoints/update-a-webhook-endpoint"}]},{"group":"events","pages":[{"title":"List events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/events","href":"/api-reference/events/list-events"},{"title":"Retrieve an event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/events/{id}","href":"/api-reference/events/retrieve-an-event"},{"title":"Resend an event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/events/{id}/resend","href":"/api-reference/events/resend-an-event"}]},{"group":"balance","pages":[{"title":"Retrieve the stamping balance","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/balance","href":"/api-reference/balance/retrieve-the-stamping-balance"}]},{"group":"billing","pages":[{"title":"Get subscription and usage state","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/billing","href":"/api-reference/billing/get-subscription-and-usage-state"},{"title":"Start a subscription checkout","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/billing/checkout_sessions","href":"/api-reference/billing/start-a-subscription-checkout"},{"title":"Open the billing portal","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /v1/billing/portal_sessions","href":"/api-reference/billing/open-the-billing-portal"}]},{"group":"usage","pages":[{"title":"List usage records","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/usage","href":"/api-reference/usage/list-usage-records"}]},{"group":"catalogs","pages":[{"title":"List SAT catalogs","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/catalogs","href":"/api-reference/catalogs/list-sat-catalogs"},{"title":"Retrieve a SAT catalog","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/catalogs/{catalog}","href":"/api-reference/catalogs/retrieve-a-sat-catalog"}]},{"group":"versions","pages":[{"title":"List every dated API version and how to pin one (public, no auth).","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /v1/versions","href":"/api-reference/versions/list-every-dated-api-version-and-how-to-pin-one-public-no-auth"}]}]}]},"basePath":"","title":"Create an invoice - Invoice API","buildId":"dpl_596ePT575z4qnAFksq1biRW97aLY","deploymentId":"dpl_596ePT575z4qnAFksq1biRW97aLY","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C9Wu0MeN.js","utils-jWgu-6Qf.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DBD8f9qn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BGuX1ui5.js","snippetPresets-Evy63nQB.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BQHO1lnV.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-B6C8m-t_.js","shallow-BG4cT0fH.js","getApiPlaygroundDisplay-CgEPrE-D.js","CodeSnippet-CU8JyZ9N.js","CodeSnippets-BnxHU32T.js","Page-D6S0Yh6q.js","getPastedJson-CwiYOonh.js","icon-DYDpWmDf.js","MethodPill-C-J-l7_c.js","DuplicateIcon-B6ARwg9w.js","createIcon-Dsv4MtDq.js","DynamicMarkdown-CtasenyM.js","SectionHeading-YNcgYwjB.js","axios-vUo_bRtp.js","Markdown-CwLx6PAg.js","clsx-C3kuh_dz.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CmKHfscc.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-U3mI6Ljh.js"]}