XmlPeruDevDocs

Reenviar a SUNAT

Vuelve a encolar el envío de un comprobante firmado que no llegó a resolverse.

Autenticación: token Bearer de empresa (cpe:sign).

Consideraciones

  • Responde 202 apenas encola: no devuelve el CDR. El resultado se consulta con GET /v1/cpe/{external_id}.
  • Casi nunca hace falta. POST /v1/cpe ya firma y manda en un solo paso, y los fallos de red se reintentan solos.
  • Es idempotente: llamarlo repetido no envía el comprobante dos veces.
  • Si SUNAT ya respondió (aceptado, observado o rechazado) devuelve 409: no hay nada que enviar.
  • Sirve para comprobantes y también para resúmenes (RC/RA/RR) y guías (09/31).
POSThttps://api.xmlperu.dev/v1/cpe/{external_id}/resendCopiar

Cuándo usar este endpoint

Casi nunca. POST /v1/cpe ya firma y manda el comprobante, y los fallos de red se reintentan solos los fallos de red con esperas crecientes.

Queda para el caso raro: un comprobante firmado que se quedó sin resolver. Por ejemplo, un envío que agotó sus reintentos, o uno que nunca llegó a encolarse.

Antes de usarlo, consulta el comprobante. Si resolved es true, no hay nada que hacer; si es false, lo más probable es que siga en camino y solo haya que esperar.

Qué pasa si SUNAT falla

La cola reintenta los fallos de conexión con esperas crecientes (10 s, 30 s, 2 min, 10 min). Un rechazo de SUNAT no se reintenta: es una respuesta, no un fallo, y el comprobante queda rechazado.

El caso delicado es el timeout. Ahí la petición sí salió, y SUNAT pudo haberla registrado; reenviar arriesga duplicar el comprobante. Por eso el envío no se reintenta: el comprobante queda en Pendiente y un proceso periódico consulta su estado hasta resolverlo. Tú no tienes que hacer nada — solo no reenviarlo a ciegas por tu cuenta.

Headers

NameTypeDescription
Acceptstringapplication/json
Content-Typestringapplication/json
AuthorizationstringBearer <token>. Genéralo desde tu panel, en Tokens de API.

Parámetros de URL

NameTypeDescription
external_id*stringIdentificador del comprobante devuelto al emitir.

Ejemplo de solicitud

Copiar
curl -X POST https://api.xmlperu.dev/v1/cpe/9c2f1b7e-0000-0000-0000-000000000000/resend \
  -H "Authorization: Bearer $TOKEN_EMPRESA" \
  -H "Accept: application/json"

Respuesta

202 Encoladoapplication/json
El envío quedó en cola. Consulta el estado del comprobante para conocer el resultado.
{
  "success": true,
  "status": "queued",
  "message": "El envío quedó encolado. Consulta el estado del comprobante para conocer el resultado.",
  "external_id": "9c2f1b7e-…"
}
409 Ya resueltoapplication/json
SUNAT ya se pronunció sobre este comprobante.
{
  "success": false,
  "message": "El comprobante ya tiene respuesta de SUNAT. Consulta su estado con GET /v1/cpe/{external_id}."
}
404 No existeapplication/json
{
  "success": false,
  "message": "El comprobante no existe."
}
403 De otra empresaapplication/json
{
  "success": false,
  "message": "El comprobante no pertenece a esta empresa."
}