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

Registrar un RUC

Crea el RUC en el modo de la clave. El mismo RUC puede existir una vez en prueba y una vez en producción. El límite de RUC del plan solo cuenta los de producción.

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.

Request body

application/jsonrequired
fiscalAddressstringoptional
fiscalDepartmentstringoptional
fiscalDistrictstringoptional
fiscalProvincestringoptional
fiscalUbigeostringoptional
legalNamestringrequired
rucstringrequired
tradeNamestringoptional

Responses

201application/json

Correcto.

{
  "active": true,
  "address": {
    "department": "string",
    "district": "string",
    "line": "string",
    "province": "string",
    "ubigeo": "string"
  },
  "createdAt": "string",
  "credentials": {
    "beta": {
      "certificateExpiresAt": "string",
      "configured": true,
      "hasCertificate": true,
      "hasSolPassword": true,
      "lastError": "string",
      "solUser": "string",
      "validatedAt": "string"
    },
    "produccion": {
      "certificateExpiresAt": "string",
      "configured": true,
      "hasCertificate": true,
      "hasSolPassword": true,
      "lastError": "string",
      "solUser": "string",
      "validatedAt": "string"
    }
  },
  "environment": "string",
  "isDefault": true,
  "legalName": "string",
  "livemode": true,
  "productionEnabled": true,
  "ruc": "string",
  "status": "string",
  "tradeName": "string",
  "updatedAt": "string"
}
activebooleanrequired
addressrequired
createdAtobjectrequired
credentialsrequired
environmentstringrequired

Solo informativo: produccion si el RUC está habilitado, si no beta. El ambiente de cada emisión lo decide la clave.

isDefaultbooleanrequired
legalNamestringrequired
livemodebooleanrequired

Modo del RUC: true = producción (claves asu_live_), false = prueba (claves asu_test_, SUNAT beta). El mismo RUC puede existir una vez en cada modo.

productionEnabledbooleanrequired

true cuando las claves asu_live_ ya pueden emitir en SUNAT producción.

rucstringrequired
statusstringrequired

Estado de la validación beta del RUC.

tradeNamestringrequired
updatedAtobjectrequired
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.

ISSUER_LIMIT_REACHED: El plan no permite más RUC de producción (los RUC de prueba no tienen límite).

{
  "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
409application/json

ISSUER_ALREADY_EXISTS: El RUC ya está registrado.

{
  "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
Listar RUC< PreviousConsultar un RUCNext >

Powered by heyo

curl --request POST \
  'https://api.apisunat.net/api/v1/issuer/issuers' \
  --header 'Content-Type: application/json' \
  --data '{
  "ruc": "20123456789",
  "legalName": "Mi Empresa S.A.C.",
  "tradeName": "Mi Empresa"
}'
{
  "active": true,
  "address": {
    "department": "string",
    "district": "string",
    "line": "string",
    "province": "string",
    "ubigeo": "string"
  },
  "createdAt": "string",
  "credentials": {
    "beta": {
      "certificateExpiresAt": "string",
      "configured": true,
      "hasCertificate": true,
      "hasSolPassword": true,
      "lastError": "string",
      "solUser": "string",
      "validatedAt": "string"
    },
    "produccion": {
      "certificateExpiresAt": "string",
      "configured": true,
      "hasCertificate": true,
      "hasSolPassword": true,
      "lastError": "string",
      "solUser": "string",
      "validatedAt": "string"
    }
  },
  "environment": "string",
  "isDefault": true,
  "legalName": "string",
  "livemode": true,
  "productionEnabled": true,
  "ruc": "string",
  "status": "string",
  "tradeName": "string",
  "updatedAt": "string"
}