Skip to content

Estado cfdi

Por expresión

api/v1/SAT/status-cfdi

Este servicio regresa la validación de una expresión de un cfdi.

URL

bash
    GET /api/v1/SAT/status-cfdi?expression={expression-cfdi}

Headers

Authorization: Bearer {token}

Accept: application/json

URL Params

InputTypeRequiredValues acceptableDefault
expressionstringtruetype:URL

Data Params

txt
    None

Respuestas Posibles

Success

Code: 200 Response Aceptada

Content:

json
{
  "expression": {
    "fullExpression": "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?id=CEE4BE01-ADFA-4DEB-8421-ADD60F0BEDAC&re=POT9207213D6&rr=DIM8701081LA&tt=2010.01&fe=/OAgdg=="
  },
  "codigoEstatus": "found",
  "estado": "active",
  "esCancelable": "cancellableByApproval",
  "estatusCancelacion": "undefined",
  "validacionEFOS": "excluded"
}

Unauthorized

Code: 401 Unauthorized

Content:

json
{
  "message": "Unauthenticated."
}

Unprocessable Content

Code: 422 Unprocessable Content

Content:

json
{
  "errors": {
    "expression": ["The expression field is required."]
  }
}
json
{
  "errors": {
    "expression": ["The expression field must be a valid URL."]
  }
}
Ejemplo con curl
bash
curl --location --request GET 'https://bridge.paladins.mx/api/v1/SAT/status-cfdi?expression=https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?id=CEE4BE01-ADFA-4DEB-8421-ADD60F0BEDAC%26re=POT9207213D6%26rr=DIM8701081LA%26tt=2010.01%26fe=/OAgdg==' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer zbSSVOcamRzUmgx6OD8FS3N3XvB3vhhViqk3iuK6'

Por archivos cfdis (.xml)

api/v1/SAT/status-cfdi

Este servicio regresa el estado de los cfdis mandando los xml para su revisión.

URL

bash
    POST /api/v1/SAT/status-cfdi

Headers

Authorization: Bearer {token}

Accept: application/json

URL Params

InputTypeRequiredValues acceptableDefault
cfdisarraytrue'file', 'mimetypes:application/xml,text/xml'

Data Params

txt
    None

Respuestas Posibles

Success

Code: 200 Response Aceptada

Con un archivo xml

Content:

json
{
  "data": [
    {
      "expression": {
        "fullExpression": "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?id=4c7a0582-5151-43b3-ba74-4e710479a1ee&re=LAN8507268IA&rr=XAXX010101000&tt=6.9&fe=2RuEVw==",
        "values": {
          "id": "4c7a0582-5151-43b3-ba74-4e710479a1ee",
          "re": "LAN8507268IA",
          "rr": "XAXX010101000",
          "tt": "6.9",
          "fe": "i3rTWfK4yQQxqChb7AtT+DSVmJGcer3dR4yikzGq7qE8Z0sKggeh79BbMtZHlH1ltQX9KEL5o8Pl4zy4myj3z6idoU1m5rbD+3RgpW7M4zyQpIOPMThermHXHkpy7DoiX2sFeBJ2LJIEsYCaeWZaLqgwTlEboXk8ySOD8BqoSO2obtEyHVik5KZLwR8gfSujlxCkgbonzDl27VOcbjzzxHjLnL8230WT+JN32K1lY/cZvH5H2E0ClbOLhm3UluShxIBMktxTN+iRHNy0hPFXGBs2MB9esnVje9sTx+Q9YakrEnyQYuQaL/ZZtD4ryypsLASyleWdg4H1nUkI2RuEVw=="
        }
      },
      "codigoEstatus": "notFound",
      "estado": "notFound",
      "esCancelable": "notCancellable",
      "estatusCancelacion": "undefined",
      "validacionEFOS": "included"
    }
  ]
}

Con multiples archivos xml

Content:

json
{
  "data": [
    [
      {
        "expression": {
          "fullExpression": "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?id=4c7a0582-5151-43b3-ba74-4e710479a1ee&re=LAN8507268IA&rr=XAXX010101000&tt=6.9&fe=2RuEVw==",
          "values": {
            "id": "4c7a0582-5151-43b3-ba74-4e710479a1ee",
            "re": "LAN8507268IA",
            "rr": "XAXX010101000",
            "tt": "6.9",
            "fe": "i3rTWfK4yQQxqChb7AtT+DSVmJGcer3dR4yikzGq7qE8Z0sKggeh79BbMtZHlH1ltQX9KEL5o8Pl4zy4myj3z6idoU1m5rbD+3RgpW7M4zyQpIOPMThermHXHkpy7DoiX2sFeBJ2LJIEsYCaeWZaLqgwTlEboXk8ySOD8BqoSO2obtEyHVik5KZLwR8gfSujlxCkgbonzDl27VOcbjzzxHjLnL8230WT+JN32K1lY/cZvH5H2E0ClbOLhm3UluShxIBMktxTN+iRHNy0hPFXGBs2MB9esnVje9sTx+Q9YakrEnyQYuQaL/ZZtD4ryypsLASyleWdg4H1nUkI2RuEVw=="
          }
        },
        "codigoEstatus": "notFound",
        "estado": "notFound",
        "esCancelable": "notCancellable",
        "estatusCancelacion": "undefined",
        "validacionEFOS": "included"
      },
      {
        "expression": {
          "fullExpression": "https://verificacfdi.facturaelectronica.sat.gob.mx/default.aspx?id=4c7a0582-5151-43b3-ba74-4e710479a1ee&re=LAN8507268IA&rr=XAXX010101000&tt=6.9&fe=2RuEVw==",
          "values": {
            "id": "4c7a0582-5151-43b3-ba74-4e710479a1ee",
            "re": "LAN8507268IA",
            "rr": "XAXX010101000",
            "tt": "6.9",
            "fe": "i3rTWfK4yQQxqChb7AtT+DSVmJGcer3dR4yikzGq7qE8Z0sKggeh79BbMtZHlH1ltQX9KEL5o8Pl4zy4myj3z6idoU1m5rbD+3RgpW7M4zyQpIOPMThermHXHkpy7DoiX2sFeBJ2LJIEsYCaeWZaLqgwTlEboXk8ySOD8BqoSO2obtEyHVik5KZLwR8gfSujlxCkgbonzDl27VOcbjzzxHjLnL8230WT+JN32K1lY/cZvH5H2E0ClbOLhm3UluShxIBMktxTN+iRHNy0hPFXGBs2MB9esnVje9sTx+Q9YakrEnyQYuQaL/ZZtD4ryypsLASyleWdg4H1nUkI2RuEVw=="
          }
        },
        "codigoEstatus": "notFound",
        "estado": "notFound",
        "esCancelable": "notCancellable",
        "estatusCancelacion": "undefined",
        "validacionEFOS": "included"
      }
    ]
  ]
}

Unauthorized

Code: 401 Unauthorized

Content:

json
{
  "message": "Unauthenticated."
}

Unprocessable Content

Code: 422 Unprocessable Content

Content:

json
{
  "errors": {
    "cfdis": ["The cfdis field is required."]
  }
}
json
{
  "errors": {
    "cfdis.0": [
      "The cfdis.0 field must be a file of type: application/xml, text/xml."
    ]
  }
}
Ejemplo con curl
bash
curl --location --request POST 'https://bridge.paladins.mx/api/v1/SAT/status-cfdi' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer zbSSVOcamRzUmgx6OD8FS3N3XvB3vhhViqk3iuK6' \
--form 'cfdis[]=@"/home/miguelangelmp10/Descargas/detallista-example.xml"' \
--form 'cfdis[]=@"/home/miguelangelmp10/Descargas/detallista-example.xml"'

Por parametros

/api/v1/SAT/status-cfdi-with-parameters

Este servicio regresa la validación de una expresión de un cfdi. Usando requiendo

  • folioFiscal
  • rfcEmisor
  • rfcReceptor

URL

bash
    POST /api/v1/SAT/status-cfdi-with-parameters

Headers

Authorization: Bearer {token}

Accept: application/json

URL Params

txt
    None

Data Params

InputTypeRequiredValues acceptableDefault
folioFiscalstringtruetype:uuid
rfcEmisorstringtruetype:rfc
rfcReceptorstringtruetype:rfc

Respuestas Posibles

Success

Code: 200 Response Aceptada

Content:

json
{
  "rfcEmisor": "IAPJ561231KP5",
  "nombreEmisor": "JUAN FRANCISCO ERNESTO IBARRA PADILLA",
  "rfcReceptor": "CMM860120KI1",
  "nombreReceptor": "CASA DE MONEDA DE MÉXICO",
  "folioFiscal": "ECF48707-7C06-4408-AA09-D8E8C6BFF720",
  "fechaEmision": "2017-12-04T12:23:37",
  "fechaCertificacion": "2017-12-04T12:23:38",
  "rfcPac": "FIN1203015JA",
  "monto": "$115.20",
  "efectoComprobante": "Ingreso",
  "estado": "Vigente",
  "esCancelable": "Cancelable sin aceptación",
  "estatusCancelacion": "",
  "fechaCancelacion": "",
  "motivo": "",
  "folioSustitucion": ""
}

Unauthorized

Code: 401 Unauthorized

Content:

json
{
  "message": "Unauthenticated."
}

Unprocessable Content

Code: 422 Unprocessable Content

Content:

json
{
  "errors": {
    "folioFiscal": ["The folio fiscal field is required."],
    "rfcEmisor": ["The rfc emisor field is required."],
    "rfcReceptor": ["The rfc receptor field is required."]
  }
}
json
{
  "errors": {
    "folioFiscal": ["The folio fiscal field must be a valid UUID."]
  }
}
Ejemplo con curl
bash
curl --location --request POST 'https://bridge.paladins.mx/api/v1/SAT/status-cfdi-with-parameters' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer 5MOzR0TAmmpjikNzDKwc72LBjicd2Fo1AsT73aRG' \
--header 'Content-Type: application/json' \
--data-raw '{
    "folioFiscal": "ECF48707-7C06-4408-AA09-D8E8C6BFF720",
    "rfcEmisor": "IAPJ561231KP5",
    "rfcReceptor": "CMM860120KI1"
}'

Posibles estados

  • CodigoEstatus

    • found: Si el estado inicia con S - .
    • notFound: en cualquier otro caso.
  • Estado

    • active: Si el estado reportó Vigente.
    • cancelled: Si el estado reportó Cancelado.
    • notFound: en cualquier otro caso.
  • EsCancelable

    • cancellableByDirectCall: Si el estado reportó Cancelable sin aceptación.
    • cancellableByApproval: Si el estado reportó Cancelable con aceptación.
    • notCancellable: en cualquier otro caso.
  • EstatusCancelacion

    • cancelledByDirectCall: Si el estado reportó Cancelado sin aceptación.
    • cancelledByApproval: Si el estado reportó Cancelado con aceptación.
    • cancelledByExpiration: Si el estado reportó Plazo vencido.
    • pending: Si el estado reportó En proceso.
    • disapproved: Si el estado reportó Solicitud rechazada.
    • undefined: en cualquier otro caso.
  • ValidacionEFOS

    • included: Si el estado no reportó 200.
    • excluded: Si el estado reportó 200.

Estados mutuamente excluyentes:

CodigoEstatusEstadoEsCancelableEstatusCancelacionExplicación
N - ...***El SAT no sabe del CFDI con la expresión dada
S - ...Cancelado*Plazo vencidoCancelado por plazo vencido
S - ...Cancelado*Cancelado con aceptaciónCancelado con aceptación del receptor
S - ...Cancelado*Cancelado sin aceptaciónNo fue requerido preguntarle al receptor y se canceló
S - ...VigenteNo cancelable*No se puede cancelar
S - ...VigenteCancelable sin aceptación*Se puede cancelar, pero no se ha realizado la cancelación
S - ...VigenteCancelable con aceptación(ninguno)Se puede cancelar, pero no se ha realizado la solicitud
S - ...VigenteCancelable con aceptaciónEn procesoSe hizo la solicitud y está en espera de respuesta
S - ...VigenteCancelable con aceptaciónSolicitud rechazadaSe hizo la solicitud y fue rechazada

Cuando tienes un CFDI en estado Cancelable con aceptación y mandas a hacer la cancelación entonces su estado de cancelación cambiaría a En proceso.

El receptor puede aceptar la cancelación (Cancelado con aceptación) o rechazarla (Solicitud rechazada).

Si es la primera vez que se hace la solicitud, el receptor tiene 72 horas para aceptarla o rechazarla, si no lo hace entonces automáticamente será cancelada (Plazo vencido).

Podrías volver a enviar la solicitud de cancelación por segunda vez aun cuando la solicitud fue previamente rechazada.

En ese caso, el receptor puede aceptar o rechazar la cancelación, pero ya no aplicará un lapso de 72 horas. Por lo anterior entonces podrías tener el CFDI en estado de cancelación en proceso indefinidamente. Incluso, que la cancelación suceda meses después de lo esperado.