List fiscal validations
LiveServed by the v1 API in development with the same checks as production; production opens on the same contract. The capabilities from before v1 keep running in production at the path your account team gives you.
Most recent first.
Needs the fiscal_validations:read scope.
oauth2 fiscal_validations:readAuthorizationBearer <token>OAuth 2.0 client credentials. Exchange your client_id and client_secret at /oauth/token of the environment for a bearer token valid for one hour. The playground of every operation asks for your own client and keeps it in your browser tab only.
Scope: fiscal_validations:read
external_id?stringFilter by your id.
curp?stringFilter by CURP.
rfc?stringFilter by RFC.
status?stringreceived, processing, completed, partially_completed or failed.
created_from?stringISO date.
created_to?stringISO date.
cursor?stringFrom next_cursor of the previous page.
limit?integer1 to 500.
100OK
application/json- response
data*array<>next_cursor*|nullcurl -X GET 'https://api.dev.b2b.heru.app/v1/fiscal-validations'{ "data": [ { "id": "fv_01m4rark12fyxt410cjpy7r227", "external_id": "FV-2026-004419", "status": "processing", "message": null, "created_at": "2026-10-12T15:12:40.482Z", "updated_at": "2026-10-12T15:12:40.482Z" }, { "id": "fv_01m4rakrjdfk2905b1348s69a4", "external_id": "FV-2026-004418", "status": "partially_completed", "code": "SAT_SOURCES_PENDING", "message": "Some SAT sources did not answer. We keep retrying and send another webhook when the validation completes.", "pending": [ "efirma", "csd", "third_party_invoicing" ], "result": { "curp": "FOMS900106MDFLRF01", "name": "SOFIA ALEJANDRA FLORES MORALES", "given_names": "SOFIA ALEJANDRA", "first_surname": "FLORES", "second_surname": "MORALES", "rfc": "FOMS900106H88", "rfc_valid": true, "rfc_active": true, "postal_code": "03100", "regimes": [ { "code": "625", "description": "Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas" } ], "efirma": null, "csd": null, "third_party_invoicing": null, "validation_url": "https://siat.sat.gob.mx/app/qr/faces/pages/mobile/validadorqr.jsf?D1=10&D2=1&D3=35359139243_FOMS900106H88" }, "created_at": "2026-10-12T15:10:02.317Z", "updated_at": "2026-10-12T15:10:09.203Z" }, { "id": "fv_01m4rahkt0ffxvjfbp5edd5drk", "external_id": "FV-2026-004417", "status": "completed", "message": null, "pending": [], "result": { "curp": "SACL900105HNLNRS05", "name": "LUIS FERNANDO SANCHEZ CRUZ", "given_names": "LUIS FERNANDO", "first_surname": "SANCHEZ", "second_surname": "CRUZ", "rfc": "SACL900105T28", "rfc_valid": true, "rfc_active": false, "postal_code": "64000", "regimes": [ { "code": "612", "description": "Personas Físicas con Actividades Empresariales y Profesionales" } ], "efirma": { "active": false, "valid_from": "2019-02-01", "valid_to": "2023-02-01" }, "csd": { "active": false, "valid_from": null, "valid_to": null }, "third_party_invoicing": { "eligible": false, "reason": "rfc_suspended" }, "validation_url": "https://siat.sat.gob.mx/app/qr/faces/pages/mobile/validadorqr.jsf?D1=10&D2=1&D3=45868750792_SACL900105T28" }, "created_at": "2026-10-12T15:08:51.904Z", "updated_at": "2026-10-12T15:08:57.203Z" }, { "id": "fv_01m4raememegster7jcdesan35", "external_id": "FV-2026-004416", "status": "failed", "code": "NAME_MISMATCH", "message": "The name sent does not match the name registered for this CURP", "result": null, "created_at": "2026-10-12T15:07:14.260Z", "updated_at": "2026-10-12T15:07:19.203Z" }, { "id": "fv_01m4rabj77efatwbjnrk0km5az", "external_id": "FV-2026-004414", "status": "completed", "message": null, "pending": [], "result": { "curp": "LOMG900102MJCPRD01", "name": "MARIA GUADALUPE LOPEZ MARTINEZ", "given_names": "MARIA GUADALUPE", "first_surname": "LOPEZ", "second_surname": "MARTINEZ", "rfc": "LOMG900102Q74", "rfc_valid": true, "rfc_active": true, "postal_code": "44100", "regimes": [ { "code": "626", "description": "Régimen Simplificado de Confianza" } ], "efirma": { "active": true, "valid_from": "2023-06-10", "valid_to": "2027-06-10" }, "csd": { "active": false, "valid_from": null, "valid_to": null }, "third_party_invoicing": { "eligible": true, "reason": null }, "validation_url": "https://siat.sat.gob.mx/app/qr/faces/pages/mobile/validadorqr.jsf?D1=10&D2=1&D3=10519144743_LOMG900102Q74" }, "created_at": "2026-10-12T15:05:33.671Z", "updated_at": "2026-10-12T15:05:40.203Z" }, { "id": "fv_01m4ra8vqve0xv4yfe92canf5a", "external_id": "FV-2026-004413", "status": "completed", "message": null, "pending": [], "result": { "curp": "HEGL900101HDFRRS06", "name": "JOSE LUIS HERNANDEZ GARCIA", "given_names": "JOSE LUIS", "first_surname": "HERNANDEZ", "second_surname": "GARCIA", "rfc": "HEGL900101K44", "rfc_valid": true, "rfc_active": true, "postal_code": "06600", "regimes": [ { "code": "625", "description": "Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas" } ], "efirma": { "active": true, "valid_from": "2024-03-02", "valid_to": "2028-03-02" }, "csd": { "active": true, "valid_from": "2025-01-15", "valid_to": "2029-01-15" }, "third_party_invoicing": { "eligible": true, "reason": null }, "validation_url": "https://siat.sat.gob.mx/app/qr/faces/pages/mobile/validadorqr.jsf?D1=10&D2=1&D3=89097221992_HEGL900101K44" }, "created_at": "2026-10-12T15:04:05.115Z", "updated_at": "2026-10-12T15:04:41.203Z" } ], "next_cursor": "eyJiZWZvcmUiOiJmdl8wMW00cmE4dnF2ZTB4djR5ZmU5MmNhbmY1YSJ9"}Validate a person's tax statusPOST
Checks the CURP and RFC against RENAPO and the SAT and returns the person's fiscal profile: registered name, tax address postal code, regimes, RFC status, e.firma and CSD validity, and whether invoices can be issued on their behalf. Asynchronous: you get a receipt with status `received` now and the result by webhook, usually within a minute. Needs the `fiscal_validations:write` scope.
Get a fiscal validationGET
Use it if you missed a webhook. Needs the `fiscal_validations:read` scope.