Values of the catalogs used in Fotofacturas.
For: technical teams integrating with the API or webhooks. The meaning of each concept is in Concepts.
Catalogs you can query with an API (payment methods, tax regimes, CFDI uses, ticket codes and SAT products) are the official source: if a value on this page doesn’t match what the API returns, the API value prevails.
Ticket
Ticket status (ticketStatusId)
| Id | Name (API) | Enterprise app | Report group | Type |
|---|---|---|---|---|
| 1 | CREATED | Creado | In progress | Initial |
| 3 | AUTO INVOICING | Auto factura | In progress | Intermediate |
| 5 | WAITING INVOICE EMAIL | Esperando correo con factura | In progress | Intermediate |
| 6 | MANUAL REVIEW | Revisión manual | In progress | Intermediate |
| 7 | ADVANCED REVIEW | Revisión avanzada | In progress | Intermediate |
| 8 | WAITING MERCHANT | Esperando comercio | In progress | Intermediate |
| 10 | UNSIGNABLE | No facturable | Rejected | Final |
| 11 | SIGNED | Facturado | Invoiced | Final |
Transitions between statuses are in Ticket flow.
Ticket code (ticketCodeId)
Official catalog: GetTicketCodes (includes the description, the category and the message the user sees).
| Id | Code | Used with status |
|---|---|---|
| 1 | Created (no result) | In progress |
| 2 | Invoiced | 11 |
| 3 | Previously invoiced | 11 |
| 4 | Not a purchase ticket | 10 |
| 5 | Expired ticket | 10 |
| 6 | Foreign merchant | 10 |
| 7 | Invalid invoicing data | 10 |
| 8 | Illegible ticket | 10 |
| 9 | Incomplete ticket | 10 |
| 10 | Requires a personal account | 10 |
| 11 | Merchant portal down | 10 |
| 12 | Merchant not responding | 10 |
| 13 | Error on the invoicing portal | 10 |
| 14 | Merchant contact not found | 10 |
| 15 | Not identified | 10 |
| 16 | Previously invoiced to another RFC | 10 |
| 17 | Several tickets in the image | 10 |
| 18 | Invoiced without files | 10 |
| 19 | Couldn’t reach the merchant | 10 |
Ticket origin (ticketOriginId)
The channel the ticket was uploaded through. Returned by GetTicketById (ticketOriginId and ticketOrigin).
| Id | Origin | Channel |
|---|---|---|
| 1 | App | Mobile app (iOS/Android). |
| 2 | Web App | Web app. |
| 3 | Web app business | Business web app. |
| 4 | API | API (CreateUserTicket, CreateAssociationTicket). |
| 5 | Embedded | Flow embedded in a B2B partner’s site. |
| 6 | WhatsApp | WhatsApp. |
Invoicing method (invoiceMethod)
How the invoice was obtained. Returned by GetTicketById and only has a value once the ticket is invoiced.
| Id | Method | Meaning |
|---|---|---|
| 1 | Manual | An agent did the process. |
| 2 | Automatic | A bot invoiced on the merchant’s portal on the first attempt. |
| 3 | Automatic (retry) | A bot invoiced after one or more failed attempts. |
| 4 | Automatic with corrections | A bot invoiced after an agent corrected the data. |
Plan
Multi-RFC type (multiRfcType)
| API code | BackOffice | RFCs a collaborator can use |
|---|---|---|
P | Parent | Their association’s RFCs or, if it has no active ones, the root association’s. |
C | Child | Only their own RFCs. |
M | Mixed | Their own RFCs and the association RFCs. |
Only Fotofacturas can change this value.
Special limit values
| Field | null | 0 |
|---|---|---|
ticketsMonthlyLimit | No group limit. | Nobody can upload tickets. |
ticketsMonthlyLimitPerUser | No per-collaborator limit. | No collaborator can upload tickets. |
multiRfcPerUser | — | Collaborators can’t register their own RFCs. |
multiRfcPerAssociation | — | Association RFCs can’t be added. |
Tax data (SAT)
Payment method (ticketPaymentMethodId)
Official catalog: GetTicketPaymentMethods (returns only the enabled methods). Most used values:
| Id | Payment method | Requires CardLastFour |
|---|---|---|
01 | Cash (Efectivo) | No |
04 | Credit card (Tarjeta de crédito) | Yes |
28 | Debit card (Tarjeta de débito) | Yes |
29 | Service card (Tarjeta de servicios) | No |
CardLastFour is the last 4 digits of the card, numbers only.
Tax regime (regimenFiscalId)
Official catalog: GetRegimenFiscalAndCFDI, which also indicates whether it applies to individuals (isFisica) or legal entities (isMoral) and which CFDI uses each regime accepts. Regime names are the official SAT names.
| Id | Regime | Individual | Legal entity |
|---|---|---|---|
| 601 | Régimen General de Ley Personas Morales | No | Yes |
| 603 | Régimen de Personas Morales con Fines no Lucrativos | No | Yes |
| 605 | Régimen de Sueldos y Salarios e Ingresos Asimilados a Salarios | Yes | No |
| 606 | Régimen de Arrendamiento | Yes | No |
| 607 | Régimen de Enajenación o Adquisición de Bienes | Yes | No |
| 608 | Régimen de los demás ingresos | Yes | No |
| 610 | Residentes en el Extranjero sin Establecimiento Permanente en México | Yes | Yes |
| 611 | Régimen de Ingresos por Dividendos (socios y accionistas) | Yes | No |
| 612 | Régimen de las Personas Físicas con Actividades Empresariales y Profesionales | Yes | No |
| 614 | Régimen de los ingresos por intereses | Yes | No |
| 615 | Régimen de los ingresos por obtención de premios | Yes | No |
| 616 | Sin obligaciones fiscales | Yes | No |
| 620 | Sociedades Cooperativas de Producción que optan por diferir sus ingresos | No | Yes |
| 621 | Régimen de Incorporación Fiscal | Yes | No |
| 622 | Régimen de Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras PM | No | Yes |
| 623 | Régimen de Opcional para Grupos de Sociedades | No | Yes |
| 624 | Régimen de los Coordinados | No | Yes |
| 625 | Régimen de las Actividades Empresariales con ingresos a través de Plataformas Tecnológicas | Yes | No |
| 626 | Régimen Simplificado de Confianza | Yes | Yes |
CFDI use (usoCfdiId)
Official catalog: GetRegimenFiscalAndCFDI (each regime’s cfdi field). The chosen use must be valid for the tax regime. Names are the official SAT names.
| Id | Use |
|---|---|
| G01 | Adquisición de mercancías |
| G02 | Devoluciones, descuentos o bonificaciones |
| G03 | Gastos en general |
| I01 | Construcciones |
| I02 | Mobiliario y equipo de oficina por inversiones |
| I03 | Equipo de transporte |
| I04 | Equipo de computo y accesorios |
| I05 | Dados, troqueles, moldes, matrices y herramental |
| I06 | Comunicaciones telefónicas |
| I07 | Comunicaciones satelitales |
| I08 | Otra maquinaria y equipo |
| D01 | Honorarios médicos, dentales y gastos hospitalarios |
| D02 | Gastos médicos por incapacidad o discapacidad |
| D03 | Gastos funerales |
| D04 | Donativos |
| D05 | Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación) |
| D06 | Aportaciones voluntarias al SAR |
| D07 | Primas por seguros de gastos médicos |
| D08 | Gastos de transportación escolar obligatoria |
| D09 | Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones |
| D10 | Pagos por servicios educativos (colegiaturas) |
| S01 | Sin efectos fiscales |
| CP01 | Pagos |
| CN01 | Nómina |
SAT products and services
Hierarchical catalog Division → Family → Class → Product. Keys are prefixes (division 01 → family 0101 → class 010101 → products 01010101).
Query it with GetSatProductDivisions, GetSatProductFamilies, GetSatProductClasses and GetSatProducts; see EnterpriseAPI.
Webhooks
Event type (eventType)
| Id | Name (X-FF-Event) | When it’s sent |
|---|---|---|
| 1 | ticket.invoiced | The ticket moved to 11 SIGNED. |
| 2 | ticket.failed | The ticket moved to 10 UNSIGNABLE. |
| 3 | ticket.status_changed | Any status change, including creation. |
| — | ping | Test event from TestWebhook. It isn’t configured and isn’t kept in the history. |
Event status (status)
| Id | Name | Meaning |
|---|---|---|
| 1 | PENDING | Waiting to be sent or waiting for a retry. |
| 2 | DELIVERED | Delivered (the server responded 2xx). |
| 3 | FAILED | Attempts ran out or the webhook was deactivated. |
Details are in Webhooks.