GuíaEjemplosReferencia API
apisunat.netIngresar

Cuenta

  • GETComprobar la clave
  • GETPlan y consumo del mes

Emisores

  • GETListar RUC
  • POSTRegistrar un RUC
  • GETConsultar un RUC
  • PATCHActivar o desactivar un RUC
  • PUTGuardar credenciales SUNAT
  • POSTValidar el RUC con SUNAT
  • POSTPasar el RUC a producción

Series y establecimientos

  • GETListar series
  • GETListar establecimientos
  • POSTCrear o actualizar un establecimiento

Utilidades

  • POSTCalcular totales e IGV
  • GETListar catálogos SUNAT
  • GETBuscar en el catálogo 25 (productos SUNAT)
  • GETConsultar un catálogo

Documentos

  • GETListar documentos
  • POSTEmitir factura, boleta, nota o retención
  • GETConsultar un documento
  • GETDescargar PDF, XML, ZIP o CDR
  • POSTReenviar a SUNAT
  • POSTConsultar el ticket en SUNAT
  • GETHistorial de correos
  • POSTEnviar por correo
  • POSTReintentar un correo

Anulaciones

  • POSTAnular documentos
  • GETConsultar una anulación

GRE

  • POSTEmitir una guía de remisión (GRE)
  • GETConsultar una guía

Recursos

  • GETEspecificación OpenAPI
  • GETColección Postman
  • GETResumen para asistentes de IA
POST/issuer/issuers/{ruc}/validations/{environment}

Validar el RUC con SUNAT

beta (clave asu_test_, RUC de prueba) emite una boleta en SUNAT beta con MODDATOS y el certificado del RUC. produccion (clave asu_live_, RUC de producción) emite una factura real de S/ 1.18 y su baja con las credenciales reales; requiere confirmation: "EMITIR PRUEBA REAL", no la validación beta. Con la otra clave responde TEST_MODE_ISSUER o LIVE_MODE_ISSUER.

Send request

Use the documented inputs to call this endpoint directly.

API serverbase URL
Bearer tokenBearerAuthoptional
Stored only in this browser for the BearerAuth security scheme and reused on every API page in this group.

Parameters

Values are applied to the request and the example on the right.

rucpath · stringrequired
environmentpath · stringrequired
Valuesenum

"beta" · "produccion"

Request body

application/jsonrequired
confirmationstringoptional

Responses

202application/json

Aceptado; SUNAT puede seguir procesando.

{
  "documentNumber": "string",
  "environment": "beta",
  "message": "string",
  "status": "string",
  "voidNumber": "string"
}
documentNumberobjectrequired
environmentenumrequired

Values: "beta" · "produccion"

messageobjectrequired
statusobjectrequired
voidNumberobjectrequired
400application/json

VALIDATION_ERROR: El cuerpo, los parámetros o una regla del comprobante no son válidos. fields indica el campo.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
401application/json

UNAUTHENTICATED: Falta la clave API o no es válida.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
402application/json

TRIAL_EXPIRED: La prueba gratuita venció.

TRIAL_EXHAUSTED: La prueba gratuita consumió sus operaciones.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
403application/json

WORKSPACE_SUSPENDED: El workspace está suspendido.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
404application/json

ISSUER_NOT_FOUND: El RUC no está registrado en el workspace.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
409application/json

ISSUER_NOT_CONFIGURED: El RUC no tiene credenciales SUNAT listas: guarda el certificado y completa la validación beta (clave asu_test_) o la de producción (clave asu_live_).

PRODUCTION_CREDENTIALS_REQUIRED: Guarda el usuario SOL secundario, su clave y el certificado reales del RUC antes de la prueba real.

PRODUCTION_INVOICE_PENDING: La factura de validación de producción sigue pendiente.

VALIDATION_IN_PROGRESS: Ya hay una validación del RUC en curso.

TEST_MODE_ISSUER: El RUC es de modo prueba (clave asu_test_): la prueba real y la habilitación de producción se hacen en el RUC de producción con una clave asu_live_.

LIVE_MODE_ISSUER: El RUC es de producción (clave asu_live_): la validación en SUNAT beta se hace con el RUC de modo prueba y una clave asu_test_.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
422application/json

CONFIRMATION_REQUIRED: Falta la confirmación exacta para emitir en producción.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
429application/json

RATE_LIMITED: Se superó el límite de peticiones. Respeta el header Retry-After.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
500application/json

INTERNAL_ERROR: Error interno. Reintenta y comparte el requestId con soporte.

{
  "error": {
    "code": "string",
    "fields": {},
    "message": "string",
    "requestId": "",
    "retryable": true
  }
}
errorrequired
Guardar credenciales SUNAT< PreviousPasar el RUC a producciónNext >

Powered by heyo

curl --request POST \
  'https://api.apisunat.net/api/v1/issuer/issuers/string/validations/beta' \
  --header 'Content-Type: application/json' \
  --data '{
  "confirmation": "EMITIR PRUEBA REAL"
}'
{
  "documentNumber": "string",
  "environment": "beta",
  "message": "string",
  "status": "string",
  "voidNumber": "string"
}