URL PRUEBAS: POST https://facturacion.789.mx/api/test/factura/crear
URL PRODUCCIÓN: POST https://facturacion.789.mx/api/factura/crear
Argumento | Tipo | Default | Descripción |
---|---|---|---|
main | Contiene los datos generales de la factura y los datos del emisor. | ||
razonSocial | string | none | Nombre ó Razón social del emisor. |
rfc
requerido |
string | none | RFC del emisor. 12 dígitos para persona moral y 13 dígitos para persona física. |
tipo
requerido |
string | none | Tipo de comprobante (ingreso, egreso, traslado, nomina, pago). Para este tipo de comprobante enviar egreso |
moneda | string | MXN | Código de la moneda, acorde al estándar ISO 4217 |
cambio | decimal | 1.0 | Tipo de cambio conforme a la moneda usada. Representa el número de pesos mexicanos que equivalen a una unidad de la moneda señalada. |
formaDePago
requerido |
string | none | Código de la forma de pago según el catálogo del SAT. Debe ser igual al documento relacionado |
metodoDePago
requerido |
string | none | Código del método de pago según el catálogo del SAT. PUE. Pago en una sola exhibición PPD. Pago en parcialidades o diferido Debe ser igual al documento relacionado |
folio | string | '' | Número de folio asignado por la empresa para control interno. |
serie | string | '' | Serie. De 1 a 25 caracteres designados por la empresa para control interno y sin validez fiscal. |
total
requerido |
decimal | none | Importe total facturado con impuestos incluido. |
subtotal
requerido |
decimal | none | Importe total facturado antes de impuestos. |
uso | string | G02 | Clave del uso comprobante según el catálogo del SAT. |
fechaEmision | date | now() 2025-04-18T15:13:35 |
Campo opcional para indicar la FECHA de EMISIÓN de la factura, puede ser hasta 48hrs hacia atras de la fecha actual. Debe cumplir el siguiente formato "Y-m-d\TH:i:s" |
direccionFiscal | string | '' | Domicilio fiscal del emisor. |
direccionFiscal.calle | string | '' | Calle del emisor. |
direccionFiscal.num_ext | string | '' | Número exterior (númerio visible desde la calle) del domicilio del emisor. |
direccionFiscal.num_int | string | '' | Número interior del domicilio del emisor. |
direccionFiscal.colonia | string | '' | Colonia del domicilio del emisor. |
direccionFiscal.cp
requerido |
string | '' | Código Postal del domicilio del emisor. |
direccionFiscal.ciudad | string | '' | Ciudad del domicilio del emisor. |
direccionFiscal.localidad | string | '' | Delegación o Municipio del domicilio del emisor. |
direccionFiscal.estado | string | '' | Estado del domicilio del emisor. |
direccionFiscal.pais | string | '' | País del domicilio del emisor. |
receptor | Datos del Receptor | ||
razon_social | string | none | Nombre o Razón social del receptor |
rfc
requerido |
string | none | RFC del receptor. 12 dígitos para persona moral y 13 dígitos para persona física. |
string | none | Correo electrónico del receptor, debe ser válido. | |
direccion | string | '' | Domicilio fiscal del receptor. |
direccion.calle | string | '' | Calle del receptor. |
direccion.num_ext | string | '' | Número exterior (númerio visible desde la calle) del domicilio del receptor. |
direccion.num_int | string | '' | Número interior del domicilio del receptor. |
direccion.colonia | string | '' | Colonia del domicilio del receptor. |
direccion.codigo_postal
requerido |
string | '' | Código Postal del domicilio del receptor. |
direccion.ciudad | string | '' | Ciudad del domicilio del receptor. |
direccion.estado | string | '' | Estado del domicilio del receptor. |
direccion.pais | string | '' | País del domicilio del receptor. |
conceptos | Conjuto de datos de concetos a facturar. Por disposición de SAT en este tipo de documento, solo se permite uno, en el cual se debe detallar todos los casos. |
||
conceptos[].nombre
requerido |
string | none | Nombre del producto o servicio |
conceptos[].unidad | string | none | Descripción de la unidad de medida. Por disposición de SAT en este tipo de documento siempre se debe de enviar 'ACTIVIDAD' |
conceptos[].medidaKey
requerido |
string | none | Clave de la unidad de medida. Por disposición de SAT en este tipo de documento siempre se debe de enviar 'ACT' |
conceptos[].productKey
requerido |
string | none | Clave del producto. Por disposición de SAT en este tipo de documento siempre se debe de enviar '84111506' |
conceptos[].precioUnitario
requerido |
decimal | none | Precio unitario del producto o servicio, debe ser mayor a 0, solo se permiete el número de decimales que indica el catálogo de monedas del SAT |
conceptos[].cantidad | integer, decimal | 1 | Cantidad de productos o servicios vendidos, debe ser mayor a 0 |
conceptos[].total
requerido |
decimal | none | Importe total a factura del producto o servicio con impuestos incluidos, debe ser mayor a 0, solo se permiete el número de decimales que indica el catálogo de monedas del SAT |
conceptos[].impuestos | Conjunto | [] | Conjuto de datos con los impuestos federales a aplicar, este nodo puede omitirse sí no es necesario deducir impuestos. |
conceptos[].impuestos[].tasa
requerido |
decimal | none | Tasa del impuesto a aplicar, debe ser en decimal, ej. 16% se debe enviar como 0.16 |
conceptos[].impuestos[].tipo
requerido |
string | none | Indica el tipo de impuesto a aplicar (IVA, ISR, IEPS) |
conceptos[].impuestos[].factor | string | Tasa | Indica el factor del impuesto a aplicar (Tasa, Cuota, Exento) |
conceptos[].impuestos[].retencion
requerido |
boolean | none | Indica si se trata de una retención |
relation | string | '01' | Código de tipo relación entre facturas según el catálogo del SAT. |
related
requerido |
array | none | Conjunto de datos con uno o más folios fiscales (UUID) de las facturas relacionadas. |
ipn | Parametro opcional, permite recibir autonotificación del status del CFDI. Ver ejemplo |
||
ipn.url
requerido |
url | none | Endpoint o api donde ser recibiran las notificaciones de los cambios de status del CFDI |
ipn.data_request
requerido |
string, object | none | Conjunto de datos de control interno. Estos datos tal cual como sean enviados serán recibidos por el Endpoint o api. |
data: { "main":{ "razonSocial":"EMISOR SA DE CV", "rfc":"IIA040805DZ4", "tipo": "egreso", "moneda": "MXN", "cambio": "1", "formaDePago": "03", "metodoDePago": "PUE", "folio": "88", "serie": "B", "total": "1.16", "subtotal": "1.00", "direccionFiscal":{ "calle":"1RO DE MAYO", "num_ext":"153-A", "num_int":null, "colonia":"SAN LUIS TLATILCO", "ciudad":"NAUCALPAN DE JUAREZ", "cp":"53580", "estado":"Estado de México", "pais":"MÉXICO", "localidad":"NAUCALPAN DE JUAREZ", } }, "receptor": { "razon_social": "RECEPTOR, S.A. DE C.V.", "rfc": "FGM830830749", "email": "facturas@receptor.mx", "direccion": { "calle": "JUAN PEREZ", "colonia": "TRANSITO", "ciudad": "CIUDAD DE MEXICO", "estado": "Ciudad de México", "codigo_postal": "06820", "pais": "MEXICO", "num_ext": "39", "num_int": "0" } }, "conceptos": [ { "nombre": "Prueba nota de credito", "total": "1.16", "unidad": "ACTIVIDAD", "medidaKey": "ACT", "productKey": "84111506", "precioUnitario": "1.00", "impuestos": [ { "tasa": 0.16, "tipo": "IVA", "retencion": false } ] } ], "related": [ "A512636A-CF49-4A12-83A3-036BACDDEFCF" ], "relation": "01", "ipn": { "url":"http://***.cloudwaysapps.com/api/requestStatus", "data_request": 1, } }
Código de respuesta: 200 OK
{ id: 1, success: "Exito", uuid: "6B558DD0-D8B2-4C42-9445-68CCB2BE2C12", url_xml: "./6B558DD0-xxxxx.xml", url_pdf: "./6B558DD0-xxxxx.pdf" }
Código de respuesta: 406 Not Acceptable
Nota: este tipo de error hace indicación a que uno de los datos no es valido o esta mal llenado
[ 0: "El RFC del receptor no tiene un valor valido" ]
Código de respuesta: 403 Forbidden
Nota: este tipo de error hace indicación a la falta de datos obligatorios dentro de la solicitud
{ error: "Undefined property: stdClass::$rfc" }
Datos enviado al endpoint o api
{ "data_request": 1, "id": 1, "code_status": 200, "uuid": "6B558DD0-D8B2-4C42-9445-68CCB2BE2C12", "url_xml": "./6B558DD0-xxxxx.xml", "url_pdf":"./6B558DD0-xxxxx.pdf" }
Datos enviado al endpoint o api
{ "data_request": 1, "code_status": 403, "error": "Undefined property: stdClass::$rfc" }