CredonixDocs
Referencia de la APICFDI

Emitir

Timbra el CFDI de una orden de cobro existente.

Descripción general

Este endpoint timbra un CFDI para una orden de cobro que ya existe, igual que en la aplicación. El CFDI usa los conceptos guardados, la moneda y la descripción de la orden de cobro, y el cliente de la orden como receptor. Una solicitud exitosa devuelve 201 con el CFDI.

  • CFDI real: una orden de cobro solo puede tener un CFDI real emitido o pendiente. Al timbrarlo, la orden de cobro queda con sat_status: "emitted", su razón social cambia a la de legal_entity_id y los datos fiscales del cliente se vuelven a copiar a la orden.
  • CFDI de prueba ("test": true): se pueden emitir varios por orden de cobro y la orden no cambia (ver Modo de prueba).

Antes de timbrar, la API verifica que la razón social esté configurada para timbrar, que el cliente tenga razón social, RFC, régimen fiscal y código postal, y que cada concepto tenga nombre o descripción, product_code y unit_code. No se puede timbrar una orden de cobro cancelada; reactívala primero con Reactivar orden de cobro.

Acepta el header Idempotency-Key (ver Idempotencia). Requiere el permiso Crear en Órdenes de cobro.

Endpoint

POSThttps://app.credonix.mx/api/v1/invoices/{invoiceId}/cfdis

Path param: invoiceId — el id de la orden de cobro.

Emite un CFDI de prueba


El ejemplo timbra un CFDI de prueba sin issue_date, así que se usa la fecha de hoy en la zona horaria de la organización. La orden de cobro es en MXN: exchange_rate se ignora y el CFDI trae exchange_rate: null. Sin test (o con false), el CFDI es real.

{
  "legal_entity_id": "cmpydghmk0004v1oyioviuwjs",
  "payment_form": "03",
  "payment_method": "PUE",
  "cfdi_use": "G03",
  "exchange_rate": "17.50",
  "test": true
}

Reglas de los campos

CampoTipoRequeridoNotas
legal_entity_idstringRazón social emisora de tu organización. No se toma de la orden de cobro.
payment_methodPUE | PPDMétodo de pago.
payment_formstringClave de forma de pago. Con PPD debe ser 99; con PUE no puede ser 99.
cfdi_usestringNoUso del CFDI. Por defecto G03.
issue_datestringNoFecha de timbrado, YYYY-MM-DD. Por defecto, hoy en la zona horaria de la organización.
exchange_ratestring | number | nullSi la orden de cobro es en USDTipo de cambio, mayor que 0. En órdenes de cobro en MXN se ignora.
testbooleanNoPor defecto false. true timbra un CFDI de prueba.

Las claves válidas de payment_form y cfdi_use están en Crear orden de cobro.

Errores

StatusCódigoCausa
400VALIDATION_ERRORFalla de validación del cuerpo o de los catálogos del SAT. Si faltan datos para timbrar, errors[] trae field: "legal_entity_id" con código not_ready.
400LEGAL_ENTITY_NOT_FOUNDlegal_entity_id no existe en tu organización.
400EXCHANGE_RATE_REQUIREDOrden de cobro en USD con exchange_rate igual a 0.
400CFDI_STAMP_FAILEDNo fue posible timbrar: faltan datos de la razón social, del cliente o de los conceptos, o el SAT o el PAC rechazaron el CFDI. message explica la causa.
400LEGAL_ENTITY_NOT_CONFIGUREDCon "test": true, la razón social no está configurada para timbrar CFDI de prueba.
401MISSING_API_KEY | INVALID_API_KEY | API_KEY_REVOKEDAPI key ausente, inválida o revocada.
403INSUFFICIENT_PERMISSIONSLa API key no tiene el permiso Crear en Órdenes de cobro.
404NOT_FOUNDLa orden de cobro no existe en tu organización.
409INVOICE_CANCELEDLa orden de cobro está cancelada.
409INVOICE_ALREADY_STAMPEDLa orden de cobro ya tiene un CFDI real emitido o pendiente.
409CUSTOMER_REQUIREDLa orden de cobro no tiene un cliente seleccionado.
409CUSTOMER_NOT_FOUNDEl cliente de la orden de cobro no fue encontrado.
500INTERNAL_ERRORError interno. Si ocurre después de timbrar, el CFDI se cancela.

400 — validación fallida

{
  "code": "VALIDATION_ERROR",
  "message": "Ocurrió un error con los datos de la factura. Verifica la información e intenta nuevamente.",
  "errors": [
    {
      "field": "payment_form",
      "code": "invalid_value",
      "message": "Con el método de pago PPD la forma de pago debe ser 99 (Por definir)."
    },
    {
      "field": "cfdi_use",
      "code": "invalid_value",
      "message": "El uso de CFDI no existe en el catálogo del SAT."
    }
  ],
  "request_id": "9220d5cd-c9ea-4be6-a5ef-6b32ac57d77d"
}
Abrir Credonix