success: false is not present on every error.
Missing or invalid customer fields
A request such as{"email":"not-an-email"} returned HTTP 400:
name and a valid email address, or omit the optional email. Retrying the unchanged
body will not fix validation. Examples show selected fields; responses can include a timestamp.
A draft rejects an enum
invoice_type: "WRONG" returned 400 with a different shape:
I for an income draft or E for an egress draft. Read the field’s enum in the
reference instead of guessing a translated value.
Match the symptom to the action
When a fiscal request fails
For Mexico, read the returned provider error. Compare the recipient’s RFC, legal name, postal code, regime, and Uso CFDI with the submitted values. Check payment timing, tax amounts, and the emitting team’s certificate setup. Use the CFDI error catalog for the code you actually received. For Colombia, compare the exact DIAN/provider message with the customer identity, municipality, fiscal responsibilities, and issuer activation and numbering setup. After an ambiguous result, follow Colombia timeout recovery before attempting issuance again. Change one identified problem at a time. Do not switch a fiscal code simply to bypass an error if it no longer represents the sale.When a request times out
A timeout means you did not receive a result; the operation may still have completed.- Keep the request’s business reference and any returned resource ID or UUID.
- Retrieve the resource or search using the operation’s supported filters.
- If an idempotency key is supported, keep that same key for the same operation.
- For stamping, cancellation, refunds, or ambiguous payment results, reconcile the existing state before sending another write.