Reference

Catalogs

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)

IdName (API)Enterprise appReport groupType
1CREATEDCreadoIn progressInitial
3AUTO INVOICINGAuto facturaIn progressIntermediate
5WAITING INVOICE EMAILEsperando correo con facturaIn progressIntermediate
6MANUAL REVIEWRevisión manualIn progressIntermediate
7ADVANCED REVIEWRevisión avanzadaIn progressIntermediate
8WAITING MERCHANTEsperando comercioIn progressIntermediate
10UNSIGNABLENo facturableRejectedFinal
11SIGNEDFacturadoInvoicedFinal

Transitions between statuses are in Ticket flow.

Ticket code (ticketCodeId)

Official catalog: GetTicketCodes (includes the description, the category and the message the user sees).

IdCodeUsed with status
1Created (no result)In progress
2Invoiced11
3Previously invoiced11
4Not a purchase ticket10
5Expired ticket10
6Foreign merchant10
7Invalid invoicing data10
8Illegible ticket10
9Incomplete ticket10
10Requires a personal account10
11Merchant portal down10
12Merchant not responding10
13Error on the invoicing portal10
14Merchant contact not found10
15Not identified10
16Previously invoiced to another RFC10
17Several tickets in the image10
18Invoiced without files10
19Couldn’t reach the merchant10

Ticket origin (ticketOriginId)

The channel the ticket was uploaded through. Returned by GetTicketById (ticketOriginId and ticketOrigin).

IdOriginChannel
1AppMobile app (iOS/Android).
2Web AppWeb app.
3Web app businessBusiness web app.
4APIAPI (CreateUserTicket, CreateAssociationTicket).
5EmbeddedFlow embedded in a B2B partner’s site.
6WhatsAppWhatsApp.

Invoicing method (invoiceMethod)

How the invoice was obtained. Returned by GetTicketById and only has a value once the ticket is invoiced.

IdMethodMeaning
1ManualAn agent did the process.
2AutomaticA bot invoiced on the merchant’s portal on the first attempt.
3Automatic (retry)A bot invoiced after one or more failed attempts.
4Automatic with correctionsA bot invoiced after an agent corrected the data.

Plan

Multi-RFC type (multiRfcType)

API codeBackOfficeRFCs a collaborator can use
PParentTheir association’s RFCs or, if it has no active ones, the root association’s.
CChildOnly their own RFCs.
MMixedTheir own RFCs and the association RFCs.

Only Fotofacturas can change this value.

Special limit values

Fieldnull0
ticketsMonthlyLimitNo group limit.Nobody can upload tickets.
ticketsMonthlyLimitPerUserNo 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:

IdPayment methodRequires CardLastFour
01Cash (Efectivo)No
04Credit card (Tarjeta de crédito)Yes
28Debit card (Tarjeta de débito)Yes
29Service 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.

IdRegimeIndividualLegal entity
601Régimen General de Ley Personas MoralesNoYes
603Régimen de Personas Morales con Fines no LucrativosNoYes
605Régimen de Sueldos y Salarios e Ingresos Asimilados a SalariosYesNo
606Régimen de ArrendamientoYesNo
607Régimen de Enajenación o Adquisición de BienesYesNo
608Régimen de los demás ingresosYesNo
610Residentes en el Extranjero sin Establecimiento Permanente en MéxicoYesYes
611Régimen de Ingresos por Dividendos (socios y accionistas)YesNo
612Régimen de las Personas Físicas con Actividades Empresariales y ProfesionalesYesNo
614Régimen de los ingresos por interesesYesNo
615Régimen de los ingresos por obtención de premiosYesNo
616Sin obligaciones fiscalesYesNo
620Sociedades Cooperativas de Producción que optan por diferir sus ingresosNoYes
621Régimen de Incorporación FiscalYesNo
622Régimen de Actividades Agrícolas, Ganaderas, Silvícolas y Pesqueras PMNoYes
623Régimen de Opcional para Grupos de SociedadesNoYes
624Régimen de los CoordinadosNoYes
625Régimen de las Actividades Empresariales con ingresos a través de Plataformas TecnológicasYesNo
626Régimen Simplificado de ConfianzaYesYes

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.

IdUse
G01Adquisición de mercancías
G02Devoluciones, descuentos o bonificaciones
G03Gastos en general
I01Construcciones
I02Mobiliario y equipo de oficina por inversiones
I03Equipo de transporte
I04Equipo de computo y accesorios
I05Dados, troqueles, moldes, matrices y herramental
I06Comunicaciones telefónicas
I07Comunicaciones satelitales
I08Otra maquinaria y equipo
D01Honorarios médicos, dentales y gastos hospitalarios
D02Gastos médicos por incapacidad o discapacidad
D03Gastos funerales
D04Donativos
D05Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación)
D06Aportaciones voluntarias al SAR
D07Primas por seguros de gastos médicos
D08Gastos de transportación escolar obligatoria
D09Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones
D10Pagos por servicios educativos (colegiaturas)
S01Sin efectos fiscales
CP01Pagos
CN01Nó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)

IdName (X-FF-Event)When it’s sent
1ticket.invoicedThe ticket moved to 11 SIGNED.
2ticket.failedThe ticket moved to 10 UNSIGNABLE.
3ticket.status_changedAny status change, including creation.
—pingTest event from TestWebhook. It isn’t configured and isn’t kept in the history.

Event status (status)

IdNameMeaning
1PENDINGWaiting to be sent or waiting for a retry.
2DELIVEREDDelivered (the server responded 2xx).
3FAILEDAttempts ran out or the webhook was deactivated.

Details are in Webhooks.