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 pago |
| moneda | string | MXN | Código de la moneda, acorde al estándar ISO 4217. Para este tipo de comprobante enviar xxx |
| 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 | Por disposición de SAT en este tipo de documento siempre se debe de enviar 0. |
|
subtotal
requerido |
decimal | none | Por disposición de SAT en este tipo de documento siempre se debe de enviar 0. |
| fechaEmision | date | now() 2025-12-01T16:49:56 |
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 | Por disposición de SAT en este tipo de documento solo se debe de enviar UN concepto. | ||
|
conceptos[].nombre
requerido |
string | none | Nombre del producto o servicio. Para este tipo de comprobante se recomiendo enviar pago |
| 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 segun el catálogo del SAT. Por disposición de SAT en este tipo de documento siempre se debe de enviar 'ACT'. |
|
conceptos[].productKey
requerido |
string | none | Clave del producto segun el catálogo del SAT. Por disposición de SAT en este tipo de documento siempre se debe de enviar '84111506'. |
|
conceptos[].precioUnitario
requerido |
decimal | none | Por disposición de SAT en este tipo de documento siempre se debe de enviar '0'. |
| conceptos[].cantidad | integer, decimal | 1 | Cantidad de productos o servicios vendidos, debe ser mayor a 0 |
|
conceptos[].total
requerido |
decimal | none | Por disposición de SAT en este tipo de documento siempre se debe de enviar '0'. |
| complementos | Contiene los datos de los complementos a agregar al CFDI. | ||
|
recepcion_pago
requerido |
object | none | Datos detallados de la recepción de pago |
|
forma_pago
requerido |
string | none | Código de la forma de pago según el catálogo del SAT. |
|
moneda
requerido |
string | none | Código de la moneda, acorde al estándar ISO 4217 |
| cambio | decimal | none | 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. Es requerido cuando la moneda es diferente a MXN |
|
fecha
requerido |
date | none | Fecha en que se recibio el pago, debe llevar el formato 'Y-m-d'T'H:i:s' |
|
num_operacion
requerido |
string | none | Representa la forma en que se puede identificar el pago, puede ser, número de deposito, número de rastreo, número de cheque, u otro idenficador del pago. |
|
monto
requerido |
decimal | none | Importe total del pago recibido |
| rfc_emisor_banco | string | none | RFC del banco emisor, (banco de donde sale el pago). Es requerdio cuando la forma de pago es bancarizado segun catálogo de SAT |
| nombre_emisor_banco | string | none | Nombre del banco emisor, (banco de donde sale el pago). Es requerdio cuando el RFC del banco emisor es 'XEXX010101000' |
| cta_ordenante | string | none | Número de cuenta del banco emisor, (banco de donde sale el pago). Es requerdio cuando la forma de pago es bancarizado y debe cumplir con el patron segun catálogo de SAT |
| rfc_receptor_banco | string | none | RFC del banco receptor, (banco donde ingresa el pago). Es requerdio cuando la forma de pago es bancarizado segun catálogo de SAT |
| cta_beneficiario | string | none | Número de cuenta del banco receptor, (banco donde ingresa el pago). Es requerdio cuando la forma de pago es bancarizado y debe cumplir con el patron segun catálogo de SAT |
|
related
requerido |
array | none | Conjunto de datos con los documentos relacionados |
|
related[].fecha
requerido |
date | none | Fecha de emisión del CFDI relacional, debe llevar el formato 'Y-m-d'T'H:i:s' |
|
related[].uuid
requerido |
string | none | UUID del CFDI relacional |
|
related[].numero_pago
requerido |
integer | none | Número de pago o parcialidad correspondiente al CFDI relacional |
|
related[].saldo_anterior
requerido |
decimal | none | Saldo del CFDI relacional, considerando los pagos anteriores |
|
related[].monto
requerido |
decimal | none | Importe total del pago realizado al CFDI relacional |
|
related[].saldo_insoluto
requerido |
decimal | none | Saldo total del CFDI relacional, despues de descontar el pago actual |
|
related[].metodoDePago
requerido |
string | none | Código del método de pago del CFDI relacional. PUE. Pago en una sola exhibición PPD. Pago en parcialidades o diferido. |
|
related[].moneda
requerido |
string | none | Moneda del CFDI relacional. |
| related[].cambio | string | none | Tipo de cambio del CFDI relacional. Es requerido cuando la moneda es diferente a MXN |
| related[].folio | string | none | Folio del CFDI relacional. |
| related[].serie | string | none | Serie del CFDI relacional. |
| 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": "pago",
"moneda": "XXX",
"folio": "88",
"serie": "B",
"total": "0",
"subtotal": "0",
"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": "Pago",
"total": "0",
"unidad": "ACTIVIDAD",
"medidaKey": "ACT",
"productKey": "84111506",
"precioUnitario": "0",
}
],
"complementos": {
"recepcion_pago": {
"forma_pago": "03",
"moneda": "MXN",
"cambio": "1",
"fecha": "2019-02-28T10:59:35",
"num_operacion": "19",
"monto": 488.394,
"rfc_emisor_banco": "BBA830831LJ2",
"nombre_emisor_banco": "PRuebarfc",
"cta_ordenante": "1234567890",
"rfc_receptor_banco": "BBA830831LJ2",
"cta_beneficiario": "0196294642",
"related": [
{
"fecha": "2019-01-28T10:59:35",
"uuid": "51B220AF-ED5D-4A32-AF7D-2E2E944125",
"numero_pago": "1",
"saldo_anterior": 9488.394,
"monto": 488.394,
"saldo_insoluto": 9000,
"metodoDePago": "PPD",
"moneda": "MXN",
"cambio": 1,
"folio": "8983",
"serie": "A"
}
]
}
},
"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"
}