# Introducción

Bienvenido a la documentación oficial de MIGO API. Nuestra API está diseñada para ser sencilla, intuitiva y flexible, permitiéndote integrar todas nuestras funcionalidades de validación en tus aplicaciones de manera rápida.

### Cómo Empezar

Para comenzar, te recomendamos seguir los siguientes pasos:

1. **Registrar una Cuenta**: Si aún no lo has hecho, crea una cuenta en <https://api.migo.pe>.
2. **Generar un Token API**: Autentica tu aplicación para empezar a realizar consultas. Visita <https://api.migo.pe/tokens> para generar un token.
3. **Explorar los Endpoints**: Familiarízate con los endpoints disponibles y sus parámetros.

Recomendamos realizar las pruebas de integración con el software [Postman](https://www.postman.com/downloads/) que incluye ejemplos de código en muchos lenguajes de programación y librerías populares.

¡Esperamos que disfrutes integrando nuestra API en tus proyectos!


# Registro y Autenticación

## Registro

Para utilizar nuestro servicio debe crear una cuenta de prueba de forma gratuita en nuestra página <https://api.migo.pe/register>.

## Autenticación

La autenticación con nuestro servicio API se maneja con una llave token.

Puede crear un token en <https://api.migo.pe/tokens>.

Un token no expira y puede ser usado en varias aplicaciones y clientes sin restricción, si cambia de plan de pago puede seguir utilizando el mismo token.

Si no agrega su token API correctamente, o su token API no es válido, recibirá el error HTTP 403 - Unauthorized.


# Protocolo de seguridad TLS/SSL

Nuestros servidores utilizan protocolo de seguridad TLS 1.2 o superior para conexiones entrantes.

Si presenta errores de conexión SSL/TLS con Windows 7/.NET deberá actualizar su aplicación o sistema operativo para soportar el protocolo TLS 1.2.

Debe revisar la documentación oficial de Microsoft con procedimientos para habilitar TLS 1.2 en clientes Windows en los siguientes enlaces:

{% embed url="<https://docs.microsoft.com/en-us/mem/configmgr/core/plan-design/security/enable-tls-1-2-client>" %}

{% embed url="<https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls>" %}


# Rate Limit

Las limitaciones de la API dependen del tipo de cuenta y del endpoint que se utiliza. No existen límites de IP o token.

La siguiente tabla enumera los límites de consulta actuales:

### Consultas RUC, Tipo de Cambio SUNAT y SBS, CPE, Comisiones AFP

| Tipo de Plan | Solicitudes por cada 15 minutos |
| ------------ | ------------------------------- |
| Básico       | 900 (60 por minuto)             |
| Empresa      | 1800 (120 por minuto)           |
| Premium      | 3600 (240 por minuto)           |

### Consultas DNI, Representantes Legales

| Tipo de Plan | Solicitudes por cada 15 minutos |
| ------------ | ------------------------------- |
| Básico       | 450 (30 por minuto)             |
| Empresa      | 900 (60 por minuto)             |
| Premium      | 1800 (120 por minuto)           |

### Consultas RUC masivas

| Tipo de Plan      | Solicitudes por cada 15 minutos |
| ----------------- | ------------------------------- |
| Básico            | 450 (30 por minuto)             |
| Empresa & Premium | 900 (60 por minuto)             |

El promedio de consultas por minuto es únicamente referencial; el límite máximo de consultas puede alcanzarse en un intervalo menor a 15 minutos.


# Planes y créditos

## Planes

Todos los planes de suscripción tienen un límite de consultas mensuales predefinido.

Las consultas disponibles de todos los planes expiran el último día de cada mes y no son acumulables o reembolsables.

El contador de consultas consumidas se reinicia el 1ro de cada mes a las 00:00 horas.

La compra o extensión de una suscripción en una fecha distinta al 1ro de cada mes no reinicia las consultas realizadas previamente en el mes.

## Créditos adicionales

Requisito: Tener una suscripción activa.

Los créditos adicionales se pueden comprar en cualquier momento durante el mes y se agregan inmediatamente al saldo disponible.

Los créditos no utilizados expiran el último día de cada mes y no son acumulables o reembolsables.


# Códigos de Estado HTTP

Las respuestas exitosas se indican con un código HTTP 200 y un mensaje en formato JSON.

Las respuestas de error tienen con un código HTTP de rango 400 o 500 y un mensaje en formato JSON.

| Código | Mensaje               | Descripción                                                                                                                                                                      |
| ------ | --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 200    | OK                    | La solicitud fue exitosa.                                                                                                                                                        |
| 401    | Unauthorized          | Hubo un problema al autenticar su solicitud. Esto podría deberse a credenciales de autenticación incorrectas o faltantes.                                                        |
| 403    | Forbidden             | La solicitud ha sido denegada o no se permite el acceso.                                                                                                                         |
| 404    | Not Found             | URL solicitada no es válida o el recurso solicitado no existe.                                                                                                                   |
| 405    | Method Not Allowed    | El recurso no soporta el método de petición HTTP especificado.                                                                                                                   |
| 422    | Unprocessable Entity  | Los datos enviados no se pueden procesar.                                                                                                                                        |
| 429    | Too Many Requests     | Se devuelve cuando no se puede atender una solicitud debido a que excedió el límite de consultas. Se recomienda un máximo de 60 consultas por minuto desde un mismo dispositivo. |
| 500    | Internal Server Error | Algo salió mal en el servidor. Puede ser un error temporal.                                                                                                                      |
| 503    | Service Unavailable   | Los servidores están activos pero sobrecargados de solicitudes. Inténtelo de nuevo más tarde.                                                                                    |
| 504    | Gateway Timeout       | Los servidores están activos pero la solicitud no se pudo atender debido a alguna falla interna. Inténtelo de nuevo más tarde.                                                   |


# Cuenta

Permite consultar los detalles de la cuenta usuario asociada a un token.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/account" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# RUC

La información se actualiza en nuestra base de datos diariamente con información oficial de SUNAT según disponibilidad del padrón reducido publicado por SUNAT.

{% hint style="info" %}
Hacemos nuestro mejor esfuerzo para proporcionar la información más reciente y precisa posible con actualizaciones diarias, sin embargo no podemos garantizar que los datos publicados por SUNAT en el padrón reducido reflejen los últimos cambios o actualizaciones en tiempo real.
{% endhint %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/collection" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}

Puede enviar hasta 100 RUC por consulta.


# Actividades Económicas

La información se actualiza en nuestra base de datos mensualmente con información oficial según disponibilidad del padrón publicado por SUNAT.

Actualizado al 30/09/2026 con información oficial de SUNAT.

{% hint style="info" %}
Hacemos nuestro mejor esfuerzo para proporcionar la información más reciente y precisa posible con actualizaciones mensuales, sin embargo no podemos garantizar que los datos publicados por SUNAT en el padrón reflejen los últimos cambios o actualizaciones en tiempo real.
{% endhint %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/actividad/{ruc}" method="get" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/actividad/collection" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Buenos Contribuyentes

Relación de Buenos Contribuyentes.

Actualizado al 10/07/2025 con información oficial de SUNAT.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/buenos-contribuyentes" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Agentes de Retención del IGV

Relación de Agentes de Retención del IGV.

Actualizado al 02/02/2026 con información oficial de SUNAT.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/agentes-retencion" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Agentes de Percepción del IGV Venta Interna

Relación de Agentes de Percepción del IGV Venta Interna.

Actualizado al 19/01/2024 con información oficial de SUNAT.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/agentes-percepcion" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Entidades Exceptuadas de la Percepción del IGV

Listado de entidades que podrán ser exceptuadas de la percepción del IGV.

Actualizado al 07/04/2026 con información oficial de SUNAT/MEF.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/exceptuadas-igv" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Locales Anexos

La información se actualiza con información oficial de SUNAT según disponibilidad del padrón reducido de locales anexos publicado por SUNAT.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/anexos" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Representantes legales

{% hint style="info" %}
La información proviene de SUNAT en tiempo real y según disponibilidad de la misma. Puede presentar mayor latencia y/o errores de conexión.
{% endhint %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ruc/representantes-legales" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Tipo de cambio

La información se actualiza de forma diaria entre las 00:00 y 06:00 horas (GMT-5) debido a la disponibilidad variable de las fuentes oficiales.

Puede consultar información del año 2010 en adelante.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/exchange/date" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/exchange/latest" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/exchange" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}

Consulta tipo de cambio por rango de fechas no mayor a 06 meses.


# DNI

El origen de datos depende del padrón reducido y fuentes públicas de SUNAT consultadas en tiempo real. **Nuestro servicio no se conecta con RENIEC**.

{% hint style="info" %}
Si al consultar un DNI válido no obtiene resultados o los nombres no aparecen actualizados, esto se debe a limitaciones inherentes a las fuentes externas que utilizamos. Lamentablemente, nuestro servicio no puede solucionar este problema, ya que no administramos ni almacenamos información de DNI en nuestros servidores.
{% endhint %}

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/dni" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# CPE

Consulta integrada de validez de comprobante de pago desde servidores SUNAT.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/cpe" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}

### Tipo de comprobante

| Código | Descripción           |
| ------ | --------------------- |
| 01     | FACTURA               |
| 03     | BOLETA DE VENTA       |
| 07     | NOTA DE CREDITO       |
| 08     | NOTA DE DEBITO        |
| R1     | RECIBO POR HONORARIOS |

### Estado del comprobante

| Código | Descripción   | Detalle                      |
| ------ | ------------- | ---------------------------- |
| 0      | NO EXISTE     | Comprobante no informado     |
| 1      | ACEPTADO      | Comprobante aceptado         |
| 2      | ANULADO       | Comunicado en una baja       |
| 3      | AUTORIZADO    | Con autorización de imprenta |
| 4      | NO AUTORIZADO | No autorizado por imprenta   |

### Estado del contribuyente

| Código | Descripción             |
| ------ | ----------------------- |
| 00     | ACTIVO                  |
| 01     | BAJA PROVISIONAL        |
| 02     | BAJA PROV. POR OFICIO   |
| 03     | SUSPENSION TEMPORAL     |
| 10     | BAJA DEFINITIVA         |
| 11     | BAJA DE OFICIO          |
| 22     | INHABILITADO-VENT.UNICA |

### Condición de Domicilio del Contribuyente

| Código | Descripción   |
| ------ | ------------- |
| 00     | HABIDO        |
| 09     | PENDIENTE     |
| 11     | POR VERIFICAR |
| 12     | NO HABIDO     |
| 20     | NO HALLADO    |


# Ubigeo

Consulta de distrito, provincia y departamento por ubigeo SUNAT.

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/ubigeo" method="post" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Número a letras

{% openapi src="/files/JRRVSjH5YkzgRHy9S3HZ" path="/numero-a-letras" method="get" %}
[api.yml](https://18901306-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FP3czhYJkm8INW9o43n3W%2Fuploads%2F9aUYgwf4QSDgm4YbJ22m%2Fapi.yml?alt=media\&token=0f8e4366-c169-4838-9ed6-c2c495931339)
{% endopenapi %}


# Introducción

Bienvenido a la documentación oficial de MIGO API. Nuestra API está diseñada para ser sencilla, intuitiva y flexible, permitiéndote integrar todas nuestras funcionalidades de validación en tus aplicaciones de manera rápida.

#### Cómo Empezar <a href="#como-empezar" id="como-empezar"></a>

Para comenzar, te recomendamos seguir los siguientes pasos:

1. **Registrar una Cuenta**: Si aún no lo has hecho, crea una cuenta en [https://api.migo.pe](https://api.migo.pe/).
2. **Generar un Token API**: Autentica tu aplicación para empezar a realizar consultas. Visita <https://api.migo.pe/tokens> para generar un token.
3. **Explorar los Endpoints**: Familiarízate con los endpoints disponibles y sus parámetros.

Recomendamos realizar las pruebas de integración con el software [Postman](https://www.postman.com/downloads/) que incluye ejemplos de código en muchos lenguajes de programación y librerías populares.

¡Esperamos que disfrutes integrando nuestra API en tus proyectos!


# Registro y autenticación

### Registro <a href="#registro" id="registro"></a>

Para utilizar nuestro servicio debe crear una cuenta de prueba de forma gratuita en nuestra página <https://api.migo.pe/register>.

### Autenticación <a href="#autenticacion" id="autenticacion"></a>

La autenticación con nuestro servicio API se maneja con una llave token.

Puede crear un token en <https://api.migo.pe/tokens>.

Un token no expira y puede ser usado en varias aplicaciones y clientes sin restricción, si cambia de plan de pago puede seguir utilizando el mismo token.

Si no agrega su token API correctamente, o su token API no es válido, recibirá el error HTTP 403 - Unauthorized.


# Planes y créditos

## Planes <a href="#planes" id="planes"></a>

Todos los planes de suscripción incluyen un límite mensual de consultas predefinido.

Las consultas disponibles vencen el último día de cada mes y no son acumulables ni reembolsables.

El contador de consultas consumidas se reinicia automáticamente el primer día de cada mes a las 00:00 horas.

La compra o extensión de una suscripción en una fecha distinta al inicio del mes no reinicia las consultas ya utilizadas durante ese período.

### Planes disponibles

| Plan    | Mensual | Semestral | Anual    | Consultas mensuales |
| ------- | ------- | --------- | -------- | ------------------- |
| Básico  | S/15.00 | S/75.00   | S/150.00 | 40,000 consultas    |
| Empresa | S/25.00 | S/125.00  | S/250.00 | 80,000 consultas    |
| Premium | S/45.00 | S/225.00  | S/450.00 | 150,000 consultas   |

Todos los precios expresados en soles peruanos (PEN) incluyen IGV, emitimos factura y/o boleta electrónica.

### Créditos adicionales <a href="#creditos-adicionales" id="creditos-adicionales"></a>

Requisito: contar con una suscripción activa.

Puedes adquirir créditos adicionales en cualquier momento del mes. Estos se agregan de forma inmediata a tu saldo de consultas disponible.

Los créditos no utilizados vencen el último día de cada mes y no son acumulables ni reembolsables.

| Cantidad créditos | Precio  |
| ----------------- | ------- |
| 40,000 consultas  | S/15.00 |
| 80,000 consultas  | S/25.00 |
| 150,000 consultas | S/45.00 |

### Historial de Logs Extendidos

| Plan            | Precio  |
| --------------- | ------- |
| Logs Extendidos | S/10.00 |

Almacenamiento de logs diarios de consultas API con retención de hasta 24 meses para auditoría y análisis, disponible como add-on en todos los planes.

Campos almacenados:

* URL
* IP de origen
* Agente
* Token
* Fecha y hora de consulta


# Limites (Rate Limit)

Los limites de la API dependen del tipo de cuenta y la URL que se utiliza. No existen límites de IP o token.

La siguiente tabla enumera los límites de consulta actuales:

### Consultas RUC, Tipo de Cambio SUNAT y SBS, CPE, Comisiones AFP

| Tipo de Plan | Solicitudes por cada 15 minutos |
| ------------ | ------------------------------- |
| Básico       | 900 (60 por minuto)             |
| Empresa      | 1800 (120 por minuto)           |
| Premium      | 3600 (240 por minuto)           |

#### Consultas DNI, Representantes Legales <a href="#consultas-dni-representantes-legales" id="consultas-dni-representantes-legales"></a>

| Tipo de Plan | Solicitudes por cada 15 minutos |
| ------------ | ------------------------------- |
| Básico       | 450 (30 por minuto)             |
| Empresa      | 900 (60 por minuto)             |
| Premium      | 1800 (120 por minuto)           |

### Consultas RUC masivas

| Tipo de Plan      | Solicitudes por cada 15 minutos |
| ----------------- | ------------------------------- |
| Básico            | 450 (30 por minuto)             |
| Empresa & Premium | 900 (60 por minuto)             |

El promedio de consultas por minuto es únicamente referencial; el límite máximo de consultas puede alcanzarse en un intervalo menor a 15 minutos.


# Códigos de estado HTTP

Las respuestas exitosas se indican con un código HTTP 200 y un mensaje en formato JSON.

Las respuestas de error tienen con un código HTTP de rango 400 o 500 y un mensaje en formato JSON.

| Código | Mensaje               | Descripción                                                                                                               |
| ------ | --------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| 200    | OK                    | La solicitud fue exitosa.                                                                                                 |
| 401    | Unauthorized          | Hubo un problema al autenticar su solicitud. Esto podría deberse a credenciales de autenticación incorrectas o faltantes. |
| 403    | Forbidden             | La solicitud ha sido denegada o no se permite el acceso.                                                                  |
| 404    | Not Found             | URL solicitada no existe o el recurso solicitado no existe.                                                               |
| 422    | Unprocessable Entity  | Los datos enviados no se pueden procesar debido a errores de validación.                                                  |
| 500    | Internal Server Error | Algo salió mal en el servidor. Puede ser un error temporal.                                                               |


# Cuenta

## GET /cuenta

> Consulta información de la cuenta asociada al token de autenticación

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"Cuenta":{"type":"object","properties":{"success":{"type":"boolean"},"nombre":{"type":"string"},"email":{"type":"string"},"consultas":{"type":"integer"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/cuenta":{"get":{"summary":"Consulta información de la cuenta asociada al token de autenticación","tags":["cuenta"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Cuenta"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# RUC

La información se actualiza en nuestra base de datos diariamente con información oficial según disponibilidad del padrón reducido publicado por SUNAT.

## GET /ruc/{ruc}

> Consulta RUC

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"Ruc":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"estado_del_contribuyente":{"type":"string"},"condicion_de_domicilio":{"type":"string"},"ubigeo":{"type":"string"},"tipo_de_via":{"type":"string"},"nombre_de_via":{"type":"string"},"codigo_de_zona":{"type":"string"},"tipo_de_zona":{"type":"string"},"numero":{"type":"string"},"interior":{"type":"string"},"lote":{"type":"string"},"dpto":{"type":"string"},"manzana":{"type":"string"},"kilometro":{"type":"string"},"distrito":{"type":"string"},"provincia":{"type":"string"},"departamento":{"type":"string"},"direccion_simple":{"type":"string"},"direccion":{"type":"string"},"actualizado_en":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}":{"get":{"summary":"Consulta RUC","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Ruc"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

{% hint style="info" %}
Información SUNAT actualizada al 30/09/2026
{% endhint %}

## GET /ruc/{ruc}/actividad-economica

> Consulta RUC con actividad económica

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"ActividadEconomica":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"estado":{"type":"string"},"condicion":{"type":"string"},"tipo":{"type":"string"},"actividad_economica_rev3_principal":{"type":"string"},"actividad_economica_rev3_secundaria":{"type":"string"},"actividad_economica_rev4_principal":{"type":"string"},"numero_trabajadores":{"type":"string"},"tipo_facturacion":{"type":"string"},"tipo_contabilidad":{"type":"string"},"comercio_exterior":{"type":"string"},"periodo":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/actividad-economica":{"get":{"summary":"Consulta RUC con actividad económica","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActividadEconomica"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## Consulta RUC y actividades económicas

> Consulta RUC que incluye información adicional sobre actividades económicas.\
> \
> La consulta exitosa a esta ruta cuenta como 2 consultas individuales para efectos de límite de uso.<br>

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"RucActividadEconomica":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"estado_del_contribuyente":{"type":"string"},"condicion_de_domicilio":{"type":"string"},"ubigeo":{"type":"string"},"tipo_de_via":{"type":"string"},"nombre_de_via":{"type":"string"},"codigo_de_zona":{"type":"string"},"tipo_de_zona":{"type":"string"},"numero":{"type":"string"},"interior":{"type":"string"},"lote":{"type":"string"},"dpto":{"type":"string"},"manzana":{"type":"string"},"kilometro":{"type":"string"},"distrito":{"type":"string"},"provincia":{"type":"string"},"departamento":{"type":"string"},"direccion_simple":{"type":"string"},"direccion":{"type":"string"},"actualizado_en":{"type":"string"},"actividad_economica":{"$ref":"#/components/schemas/ActividadEconomica"}}},"ActividadEconomica":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"estado":{"type":"string"},"condicion":{"type":"string"},"tipo":{"type":"string"},"actividad_economica_rev3_principal":{"type":"string"},"actividad_economica_rev3_secundaria":{"type":"string"},"actividad_economica_rev4_principal":{"type":"string"},"numero_trabajadores":{"type":"string"},"tipo_facturacion":{"type":"string"},"tipo_contabilidad":{"type":"string"},"comercio_exterior":{"type":"string"},"periodo":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc-actividad/{ruc}":{"get":{"summary":"Consulta RUC y actividades económicas","description":"Consulta RUC que incluye información adicional sobre actividades económicas.\n\nLa consulta exitosa a esta ruta cuenta como 2 consultas individuales para efectos de límite de uso.\n","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RucActividadEconomica"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

{% hint style="warning" %}
Recomendamos usar esta url como método alternativo solo si detecta que las consultas RUC no devuelven datos actualizados desde nuestra base de datos.
{% endhint %}

## Consulta RUC desde SUNAT

> La consulta RUC se hace en tiempo real desde los servidores SUNAT. Puede presentar mayor latencia y/o errores de conexión.

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"RucSunat":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"tipo_contribuyente":{"type":"string"},"nombre_comercial":{"type":"string"},"fecha_inscripcion":{"type":"string"},"fecha_inicio_actividades":{"type":"string"},"estado_del_contribuyente":{"type":"string"},"condicion_de_domicilio":{"type":"string"},"departamento":{"type":"string"},"provincia":{"type":"string"},"distrito":{"type":"string"},"direccion":{"type":"string"},"sistema_emision_comprobante":{"type":"string"},"actividad_comercio_exterior":{"type":"string"},"sistema_contabilidad":{"type":"string"},"actividades_economicas":{"type":"array","items":{"type":"string"}},"sistema_emision_electronica":{"type":"array","items":{"type":"string"}},"emisor_electronico_desde":{"type":"string"},"afiliado_ple_desde":{"type":"string"},"padrones":{"type":"array","items":{"type":"string"}}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/sunat":{"get":{"summary":"Consulta RUC desde SUNAT","description":"La consulta RUC se hace en tiempo real desde los servidores SUNAT. Puede presentar mayor latencia y/o errores de conexión.","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RucSunat"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## Consulta representantes legales desde SUNAT

> La consulta RUC se hace en tiempo real desde los servidores SUNAT. Puede presentar mayor latencia y/o errores de conexión.

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"RepresentanteLegal":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/RepresentanteLegalItem"}}}},"RepresentanteLegalItem":{"type":"object","properties":{"documento":{"type":"string"},"dni":{"type":"string"},"nombre":{"type":"string"},"cargo":{"type":"string"},"fecha":{"type":"string"},"ruc":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/representantes-legales":{"get":{"summary":"Consulta representantes legales desde SUNAT","description":"La consulta RUC se hace en tiempo real desde los servidores SUNAT. Puede presentar mayor latencia y/o errores de conexión.","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RepresentanteLegal"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## Consulta deuda coactiva desde SUNAT

> La consulta RUC se hace en tiempo real desde los servidores SUNAT. Puede presentar mayor latencia y/o errores de conexión.

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"DeudaCoactiva":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/DeudaCoactivaItem"}}}},"DeudaCoactivaItem":{"type":"object","properties":{"monto_deuda":{"type":"string"},"periodo_tributario":{"type":"string"},"fecha_inicio_cobranza":{"type":"string"},"entidad_asociada":{"type":"string"},"ruc":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/deuda-coactiva":{"get":{"summary":"Consulta deuda coactiva desde SUNAT","description":"La consulta RUC se hace en tiempo real desde los servidores SUNAT. Puede presentar mayor latencia y/o errores de conexión.","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeudaCoactiva"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# RUC consulta masiva

## Consulta masiva de RUC

> Permite consultar hasta 100 RUC en una sola petición.

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"RucCollection":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/RucCollectionItem"}}}},"RucCollectionItem":{"type":"object","properties":{"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"estado_del_contribuyente":{"type":"string"},"condicion_de_domicilio":{"type":"string"},"ubigeo":{"type":"string"},"tipo_de_via":{"type":"string"},"nombre_de_via":{"type":"string"},"codigo_de_zona":{"type":"string"},"tipo_de_zona":{"type":"string"},"numero":{"type":"string"},"interior":{"type":"string"},"lote":{"type":"string"},"dpto":{"type":"string"},"manzana":{"type":"string"},"kilometro":{"type":"string"},"distrito":{"type":"string"},"provincia":{"type":"string"},"departamento":{"type":"string"},"direccion_simple":{"type":"string"},"direccion":{"type":"string"},"actualizado_en":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/masivo":{"post":{"summary":"Consulta masiva de RUC","description":"Permite consultar hasta 100 RUC en una sola petición.","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ruc":{"type":"array","items":{}}},"required":["ruc"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RucCollection"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## Consulta masiva de RUC actividades económicas

> Permite consultar hasta 100 RUC en una sola petición.

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"ActividadEconomicaCollection":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ActividadEconomicaCollectionItem"}}}},"ActividadEconomicaCollectionItem":{"type":"object","properties":{"ruc":{"type":"string"},"estado":{"type":"string"},"condicion":{"type":"string"},"tipo":{"type":"string"},"actividad_economica_rev3_principal":{"type":"string"},"actividad_economica_rev3_secundaria":{"type":"string"},"actividad_economica_rev4_principal":{"type":"string"},"numero_trabajadores":{"type":"string"},"tipo_facturacion":{"type":"string"},"tipo_contabilidad":{"type":"string"},"comercio_exterior":{"type":"string"},"periodo":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/actividad-economica/masivo":{"post":{"summary":"Consulta masiva de RUC actividades económicas","description":"Permite consultar hasta 100 RUC en una sola petición.","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"ruc":{"type":"array","items":{}}},"required":["ruc"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ActividadEconomicaCollection"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Buen contribuyente

{% hint style="info" %}
Información SUNAT actualizada al 10/07/2025
{% endhint %}

## GET /ruc/{ruc}/buen-contribuyente

> Consulta RUC buen contribuyente

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"BuenContribuyente":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"a_partir_del":{"type":"string"},"resolucion":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/buen-contribuyente":{"get":{"summary":"Consulta RUC buen contribuyente","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BuenContribuyente"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Agente de retención

{% hint style="info" %}
Información SUNAT actualizada al 02/02/2026
{% endhint %}

## GET /ruc/{ruc}/agente-retencion

> Consulta RUC agente de retención

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"AgenteRetencion":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"a_partir_del":{"type":"string"},"resolucion":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/agente-retencion":{"get":{"summary":"Consulta RUC agente de retención","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgenteRetencion"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Agente de percepción venta interna

{% hint style="info" %}
Información SUNAT actualizada al 19/01/2024
{% endhint %}

## GET /ruc/{ruc}/agente-percepcion

> Consulta RUC agente de percepción venta interna

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"AgentePercepcion":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"a_partir_del":{"type":"string"},"resolucion":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/agente-percepcion":{"get":{"summary":"Consulta RUC agente de percepción venta interna","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentePercepcion"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Entidad exceptuada de percepción IGV

{% hint style="info" %}
Información SUNAT actualizada al 07/04/2026
{% endhint %}

## GET /ruc/{ruc}/entidad-exceptuada-percepcion

> Consulta RUC entidad exceptuada de percepción del IGV

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"EntidadExceptuadaPercepcion":{"type":"object","properties":{"success":{"type":"boolean"},"ruc":{"type":"string"},"nombre_o_razon_social":{"type":"string"},"tipo":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/entidad-exceptuada-percepcion":{"get":{"summary":"Consulta RUC entidad exceptuada de percepción del IGV","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EntidadExceptuadaPercepcion"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Locales anexos

La información se actualiza en nuestra base de datos diariamente con información oficial según disponibilidad del padrón reducido publicado por SUNAT.

## GET /ruc/{ruc}/anexos

> Consulta RUC locales anexos

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"ruc"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"LocalAnexo":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/LocalAnexoItem"}}}},"LocalAnexoItem":{"type":"object","properties":{"ruc":{"type":"string"},"ubigeo":{"type":"string"},"tipo_de_via":{"type":"string"},"nombre_de_via":{"type":"string"},"codigo_de_zona":{"type":"string"},"tipo_de_zona":{"type":"string"},"numero":{"type":"string"},"interior":{"type":"string"},"lote":{"type":"string"},"dpto":{"type":"string"},"manzana":{"type":"string"},"kilometro":{"type":"string"},"distrito":{"type":"string"},"provincia":{"type":"string"},"departamento":{"type":"string"},"direccion":{"type":"string"},"actualizado_en":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/ruc/{ruc}/anexos":{"get":{"summary":"Consulta RUC locales anexos","tags":["ruc"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LocalAnexo"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Tipo de cambio SUNAT

La información se actualiza de forma diaria entre las 00:00 y 06:00 horas (GMT-5) debido a la disponibilidad variable de las fuentes oficiales.

Puede consultar información del año 2010 en adelante.

## GET /tipo-cambio/sunat

> Consulta tipo de cambio por fecha SUNAT

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"tipo-cambio"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"TipoCambio":{"type":"object","properties":{"success":{"type":"boolean"},"fecha":{"type":"string"},"moneda":{"type":"string"},"precio_compra":{"type":"string"},"precio_venta":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/tipo-cambio/sunat":{"get":{"summary":"Consulta tipo de cambio por fecha SUNAT","tags":["tipo-cambio"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"fecha","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TipoCambio"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## GET /tipo-cambio/sunat/ultimo

> Consulta último tipo de cambio SUNAT

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"tipo-cambio"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"TipoCambio":{"type":"object","properties":{"success":{"type":"boolean"},"fecha":{"type":"string"},"moneda":{"type":"string"},"precio_compra":{"type":"string"},"precio_venta":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/tipo-cambio/sunat/ultimo":{"get":{"summary":"Consulta último tipo de cambio SUNAT","tags":["tipo-cambio"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TipoCambio"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## GET /tipo-cambio/sunat/historico

> Consulta tipo de cambio por rango de fecha SUNAT

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"tipo-cambio"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"TipoCambioCollection":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TipoCambioCollectionItem"}}}},"TipoCambioCollectionItem":{"type":"object","properties":{"fecha":{"type":"string"},"moneda":{"type":"string"},"precio_compra":{"type":"string"},"precio_venta":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/tipo-cambio/sunat/historico":{"get":{"summary":"Consulta tipo de cambio por rango de fecha SUNAT","tags":["tipo-cambio"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"fecha_inicio","in":"query","required":true,"schema":{"type":"string"}},{"name":"fecha_fin","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TipoCambioCollection"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Tipo de cambio SBS

La información se actualiza todos los días hábiles entre las 00:00 y 06:00 horas (GMT-5) debido a la disponibilidad variable de las fuentes oficiales.

Puede consultar información del año 2010 en adelante.

### Monedas disponibles

| Moneda             | Código |
| ------------------ | ------ |
| Dólares Americanos | USD    |
| Euro               | EUR    |

## GET /tipo-cambio/sbs

> Consulta tipo de cambio por fecha SBS

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"tipo-cambio"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"TipoCambio":{"type":"object","properties":{"success":{"type":"boolean"},"fecha":{"type":"string"},"moneda":{"type":"string"},"precio_compra":{"type":"string"},"precio_venta":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/tipo-cambio/sbs":{"get":{"summary":"Consulta tipo de cambio por fecha SBS","tags":["tipo-cambio"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"fecha","in":"query","required":true,"schema":{"type":"string"}},{"name":"moneda","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TipoCambio"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## GET /tipo-cambio/sbs/ultimo

> Consulta último tipo de cambio SBS

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"tipo-cambio"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"TipoCambio":{"type":"object","properties":{"success":{"type":"boolean"},"fecha":{"type":"string"},"moneda":{"type":"string"},"precio_compra":{"type":"string"},"precio_venta":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/tipo-cambio/sbs/ultimo":{"get":{"summary":"Consulta último tipo de cambio SBS","tags":["tipo-cambio"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"moneda","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TipoCambio"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```

## GET /tipo-cambio/sbs/historico

> Consulta tipo de cambio por rango de fecha SBS

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"tipo-cambio"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"TipoCambioCollection":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TipoCambioCollectionItem"}}}},"TipoCambioCollectionItem":{"type":"object","properties":{"fecha":{"type":"string"},"moneda":{"type":"string"},"precio_compra":{"type":"string"},"precio_venta":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/tipo-cambio/sbs/historico":{"get":{"summary":"Consulta tipo de cambio por rango de fecha SBS","tags":["tipo-cambio"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"fecha_inicio","in":"query","required":true,"schema":{"type":"string"}},{"name":"fecha_fin","in":"query","required":true,"schema":{"type":"string"}},{"name":"moneda","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TipoCambioCollection"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# DNI

Este servicio NO se conecta con RENIEC.

{% hint style="info" %}
Si consulta un DNI válido (existe físicamente) y nuestro servicio no retorna resultado o los nombres no se muestran actualizados, se debe a limitaciones en las fuentes consultadas, nuestro servicio no puede resolver este problema ya que no administramos ni almacenamos datos de DNI en nuestros servidores.
{% endhint %}

El origen de datos depende del padrón reducido SUNAT y otras fuentes públicas consultadas en tiempo real.

## Consulta DNI

> La consulta DNI se hace en tiempo real. Puede presentar mayor latencia y/o errores de conexión.

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[{"name":"dni"}],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"Dni":{"type":"object","properties":{"success":{"type":"boolean"},"dni":{"type":"string"},"nombre":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/dni/{dni}":{"get":{"summary":"Consulta DNI","description":"La consulta DNI se hace en tiempo real. Puede presentar mayor latencia y/o errores de conexión.","tags":["dni"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"dni","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Dni"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Validez comprobante de pago electrónico

## GET /cpe

> Consulta validez de comprobante de pago electrónico (CPE)

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"ComprobantePagoElectronico":{"type":"object","properties":{"success":{"type":"boolean"},"estado_comprobante":{"type":"string"},"estado_contribuyente":{"type":"string"},"condicion_domicilio":{"type":"string"},"observaciones":{"type":"array","items":{"type":"string"}}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/cpe":{"get":{"summary":"Consulta validez de comprobante de pago electrónico (CPE)","tags":["cpe"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"ruc_emisor","in":"query","required":true,"schema":{"type":"string"}},{"name":"tipo_comprobante","in":"query","required":true,"schema":{"type":"string","enum":["01","03","07","08","R1"]}},{"name":"serie","in":"query","required":true,"schema":{"type":"string"}},{"name":"numero","in":"query","required":true,"schema":{"type":"string"}},{"name":"fecha_emision","in":"query","required":true,"schema":{"type":"string"}},{"name":"monto","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComprobantePagoElectronico"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Comisiones y primas de seguros del SPP

La información se actualiza en nuestra base de datos mensualmente con información oficial de SBS el primero de cada mes.

Actualmente puede consultar información del periodo 2022-01 en adelante.

## Consulta comisiones y primas de seguros del SPP

> Consulta comisiones y primas de seguros AFP Habitat, Integra, Prima y Profuturo.

```json
{"openapi":"3.0.2","info":{"title":"MIGO API","version":"2.0"},"tags":[],"servers":[{"url":"https://api.migo.pe/api/v2"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer"}},"parameters":{"AcceptJsonParam":{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"ComisionPrima":{"type":"object","properties":{"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ComisionPrimaItem"}}}},"ComisionPrimaItem":{"type":"object","properties":{"afp":{"type":"string"},"comision_fija":{"type":"number"},"comision_flujo":{"type":"number"},"comision_mixta_flujo":{"type":"number"},"comision_mixta_saldo":{"type":"number"},"prima_de_seguro":{"type":"number"},"aporte_obligatorio":{"type":"number"},"remuneracion_maxima":{"type":"number"},"periodo":{"type":"string"}}},"Forbidden":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"NotFound":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"}}},"UnprocessableContent":{"type":"object","properties":{"success":{"type":"boolean"},"message":{"type":"string"},"errors":{"type":"object"}}}},"responses":{"ForbiddenResponse":{"description":"Forbidden","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Forbidden"}}}}}},"paths":{"/comisiones-afp/{periodo}":{"get":{"summary":"Consulta comisiones y primas de seguros del SPP","description":"Consulta comisiones y primas de seguros AFP Habitat, Integra, Prima y Profuturo.","tags":["comision-prima"],"parameters":[{"$ref":"#/components/parameters/AcceptJsonParam"},{"name":"periodo","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ComisionPrima"}}}},"403":{"$ref":"#/components/responses/ForbiddenResponse"},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotFound"}}}},"422":{"description":"Unprocessable Entity","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UnprocessableContent"}}}}}}}}}
```


# Recomendaciones previas

### Utilizar un número secundario o exclusivo para la automatización

Evita emplear tu número personal o comercial principal, ya que WhatsApp podría penalizarlo si detecta actividad automatizada. Usar un número destinado solo para el bot reduce el riesgo de baneo.

### Mantener la sesión activa

Si inicias sesión desde otro dispositivo o cierras la sesión accidentalmente, es posible perder la conexión a nuestro servicio.

### Controlar el ritmo de envío de mensajes

Evita enviar demasiados mensajes en un corto período, ya que esto puede ser interpretado como spam. Se recomienda implementar retardos (delays) entre mensajes para simular un comportamiento natural.

### Priorizar respuestas a mensajes entrantes

Los números que responden a mensajes tienden a ser considerados menos sospechosos que aquellos que solo envían mensajes. Si tu integración mantiene una interacción equilibrada, es menos probable que WhatsApp bloquee un número.

### Usar la automatización con responsabilidad

Evita realizar envíos sin control, spam y contenido ofensivo ya que estas prácticas pueden provocar el bloqueo del número.

{% hint style="warning" %}
En general se debe seguir las recomendaciones oficiales de Meta:
{% endhint %}

{% embed url="<https://faq.whatsapp.com/361005896189245>" %}

{% embed url="<https://faq.whatsapp.com/723378546580115>" %}


# Aviso Importante sobre el Uso del Servicio

Este servicio proporciona una herramienta que permite interactuar con WhatsApp a través de una conexión emulando el comportamiento de WhatsApp Web.

El sistema permite enviar y recibir mensajes sin un límite técnico impuesto por la API.\
Sin embargo, el volumen real de mensajes permitidos depende de las políticas y límites definidos por Meta para la plataforma WhatsApp.

El servicio depende de la infraestructura y disponibilidad de WhatsApp y los servicios de Meta para el envío, recepción y procesamiento de mensajes.

Aunque la plataforma está diseñada para operar de forma continua, pueden producirse interrupciones, retrasos o fallas temporales cuando los servicios de WhatsApp o Meta presentan problemas técnicos, mantenimiento o interrupciones en su infraestructura.

{% hint style="warning" %}
El cliente es responsable del uso que le dé a la herramienta.
{% endhint %}

{% hint style="warning" %}
No nos hacemos responsables por bloqueos, suspensiones o sanciones impuestas por Meta como resultado del uso del sistema.
{% endhint %}

{% hint style="warning" %}
Recomendamos utilizar un número exclusivo para este servicio y aplicar buenas prácticas para minimizar riesgos.
{% endhint %}

Este servicio no está afiliado a Meta (WhatsApp), y su uso indebido implica ciertos riesgos, como la posibilidad de suspensión o baneo del número por parte de WhatsApp si se detecta actividad no permitida según sus políticas.

Al utilizar este servicio, el cliente acepta estos términos y condiciones y comprende las posibles consecuencias del uso de una integración no afiliada a Meta.


# Acceso al Servicio de API WhatsApp

Para utilizar el servicio de API de WhatsApp, los usuarios deben seguir los siguientes pasos:

## Comprar Suscripción

El acceso al servicio requiere **al menos una suscripción de WhatsApp activa**.

Los usuarios pueden adquirir **múltiples suscripciones** si necesitan utilizar varios números de WhatsApp de forma simultánea.

Cada suscripción define los **límites y características de uso**, por ejemplo:

* Duración de la suscripción
* Cantidad de mensajes permitidos
* Número de instancias disponibles
* Otras configuraciones del servicio

\
La suscripción puede adquirirse desde el panel de usuario en el siguiente enlace:

<https://api.migo.pe/whatsapp>

## Crear Instancia API WhatsApp

Una vez adquirida la suscripción, el usuario podrá **crear una nueva instancia de API de WhatsApp** desde el panel:

<https://api.migo.pe/whatsapp>

Cada **instancia**:

* Está asociada a una suscripción específica
* Representa una **conexión individual** al servicio de WhatsApp
* Permite vincular un número de WhatsApp para el envío de mensajes mediante la API

## Vincular Número de WhatsApp

Después de crear la instancia, es necesario **vincular un número de WhatsApp** escaneando un **código QR** generado por el sistema.

Pasos:

1. Ingresar al **detalle de la instancia**.
2. En la sección **Estado de instancia**, hacer clic en **“Generar código QR”**.
3. Escanear el código QR desde la aplicación móvil de WhatsApp.

{% hint style="info" %}
El QR puede ser escaneado desde la aplicación móvil de WhatsApp o WhatsApp Business (WhatsApp > Dispositivos vinculados).
{% endhint %}

{% hint style="warning" %}
El código QR expira luego de 30 minutos. Si expira, puede generar uno nuevo desde el mismo panel.
{% endhint %}

## Obtener Credenciales

Una vez que la instancia esté correctamente vinculada al número de WhatsApp, el usuario podrá acceder a las **credenciales necesarias para utilizar la API**.

Las credenciales incluyen:

**API Key (`apikey`)**\
Clave secreta utilizada para autenticar cada solicitud a la API.

**Nombre de instancia API (`instanceName`)**\
Identificador único de la instancia de WhatsApp que se utilizará para enviar mensajes.

Estas credenciales deben incluirse en cada solicitud para **autenticar y dirigir correctamente las operaciones hacia la instancia correspondiente**.


# Estado de conexión

## Consulta estado de la instancia

> Verifica si la instancia está activa y conectada.

```json
{"openapi":"3.0.2","info":{"title":"API Whatsapp","version":"1.0"},"tags":[{"name":"Instance"}],"servers":[{"url":"https://chat.migo.pe"}],"paths":{"/instance/connectionState/{instanceName}":{"get":{"summary":"Consulta estado de la instancia","tags":["Instance"],"description":"Verifica si la instancia está activa y conectada.","parameters":[{"$ref":"#/components/parameters/ApiKey"},{"name":"instanceName","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ConnectionState"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"}}}}},"components":{"parameters":{"ApiKey":{"name":"apikey","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"ConnectionState":{"type":"object","properties":{"instance":{"type":"object","properties":{"instanceName":{"type":"string"},"state":{"type":"string","enum":["open","close","connecting"]}}}}}}}}
```


# Verificar número de WhatsApp

## Verifica números en WhatsApp

> Verifica si los números proporcionados están registrados en WhatsApp.

```json
{"openapi":"3.0.2","info":{"title":"API Whatsapp","version":"1.0"},"tags":[{"name":"Instance"}],"servers":[{"url":"https://chat.migo.pe"}],"paths":{"/chat/whatsappNumbers/{instanceName}":{"post":{"summary":"Verifica números en WhatsApp","tags":["Instance"],"description":"Verifica si los números proporcionados están registrados en WhatsApp.","parameters":[{"$ref":"#/components/parameters/ApiKey"},{"name":"instanceName","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"numbers":{"type":"array","items":{"type":"string"}}},"required":["numbers"]}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NumbersCheck"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"}}}}},"components":{"parameters":{"ApiKey":{"name":"apikey","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"NumbersCheck":{"type":"array","items":{"type":"object","properties":{"jid":{"type":"string"},"exists":{"type":"boolean"},"number":{"type":"integer"}}}}}}}
```


# Enviar mensaje de texto

## Envia un mensaje de texto

> Envia un mensaje de texto a un número de teléfono específico.

```json
{"openapi":"3.0.2","info":{"title":"API Whatsapp","version":"1.0"},"tags":[{"name":"Instance"}],"servers":[{"url":"https://chat.migo.pe"}],"paths":{"/message/sendText/{instanceName}":{"post":{"summary":"Envia un mensaje de texto","tags":["Instance"],"description":"Envia un mensaje de texto a un número de teléfono específico.","parameters":[{"$ref":"#/components/parameters/ApiKey"},{"name":"instanceName","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"Número de teléfono del destinatario con el código de país"},"text":{"type":"string","description":"Texto del mensaje"}},"required":["number","text"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendText"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"}}}}},"components":{"parameters":{"ApiKey":{"name":"apikey","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"SendText":{"type":"object","properties":{"message":{"type":"object","properties":{"conversation":{"type":"string"}}},"messageTimestamp":{"type":"integer"}}}}}}
```


# Enviar mensaje multimedia

{% hint style="info" %}
Limite de 15 megabytes (MB) para archivos multimedia base64.
{% endhint %}

## Envia un mensaje de medios

> Envia un mensaje de medios (imagen, video, audio o documento) a un número de teléfono específico.

```json
{"openapi":"3.0.2","info":{"title":"API Whatsapp","version":"1.0"},"tags":[{"name":"Instance"}],"servers":[{"url":"https://chat.migo.pe"}],"paths":{"/message/sendMedia/{instanceName}":{"post":{"summary":"Envia un mensaje de medios","tags":["Instance"],"description":"Envia un mensaje de medios (imagen, video, audio o documento) a un número de teléfono específico.","parameters":[{"$ref":"#/components/parameters/ApiKey"},{"name":"instanceName","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"number":{"type":"string","description":"Número de teléfono del destinatario con el código de país"},"mediatype":{"type":"string","description":"Tipo de medio a enviar","enum":["image","video","audio","document"]},"media":{"type":"string","description":"Base64 o URL HTTPS del medio a enviar"},"mimetype":{"type":"string","description":"Tipo MIME del medio a enviar ejemplo: 'image/jpg'"},"caption":{"type":"string","description":"Texto del mensaje que acompaña al medio, no aplica para audio"},"fileName":{"type":"string","description":"Nombre del archivo a enviar, solo aplica para documentos ejemplo: 'document.pdf'"}},"required":["number","mediatype","media"]}}}},"responses":{"201":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendMedia"}}}},"400":{"description":"Bad Request"},"401":{"description":"Unauthorized"},"404":{"description":"Not Found"}}}}},"components":{"parameters":{"ApiKey":{"name":"apikey","in":"header","required":true,"schema":{"type":"string"}}},"schemas":{"SendMedia":{"type":"object","properties":{"message":{"type":"object","properties":{"imageMessage":{"type":"object","properties":{"url":{"type":"string"},"mimetype":{"type":"string"},"fileSha256":{"type":"string"},"fileLength":{"type":"string"}}},"base64":{"type":"string"}}},"messageType":{"type":"string","enum":["imageMessage","videoMessage","audioMessage","documentMessage"]},"messageTimestamp":{"type":"integer"}}}}}}
```

{% embed url="<https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/MIME_types/Common_types>" %}


# Recibir mensajes de texto

El webhook de mensajes de texto entrantes permite recibir notificaciones en tiempo real cuando un usuario envía un mensaje a su número de WhatsApp conectado al servicio.

Cuando se recibe un mensaje, el sistema enviará una solicitud HTTP POST a la URL de webhook configurada.

## Configuración del Webhook

Debe configurar una URL pública con HTTPS que pueda recibir solicitudes POST.

Cada vez que llegue un mensaje a su número de WhatsApp, el sistema enviará los datos del evento en formato JSON a esta URL.

Ejemplo de datos enviados al webhook:

{% code overflow="wrap" lineNumbers="true" %}

```json
{
  "event": "messages.upsert",
  "instance": "6bf3639d-ce54-22b5-b869-af9r54012df4",
  "data": {
    "key": {
      "remoteJid": "51999999999@s.whatsapp.net",
      "remoteJidAlt": "51999999999@s.whatsapp.net",
      "fromMe": false,
      "id": "AC99D5066CFA0B6F4C1FA2EF0A134D07",
      "participant": "",
      "addressingMode": "lid"
    },
    "pushName": "User Name",
    "status": "SERVER_ACK",
    "message": {
      "conversation": "Hello!"
    },
    "messageType": "conversation",
    "messageTimestamp": 1773087982,
    "instanceId": "6bf3639d-ce54-22b5-b869-af9r54012df4",
    "source": "android"
  },
  "destination": "https://my-webhook.site/url",
  "date_time": "2026-03-09T17:26:22.126Z",
  "sender": "51999999999@s.whatsapp.net",
  "server_url": "https://chat.migo.pe",
  "apikey": "00000000-1111-2222-333-ABCDEFGHIJK"
}
```

{% endcode %}

{% hint style="info" %}
Actualmente el servicio no ofrece soporte para la lectura, procesamiento o conversión de archivos multimedia adjuntos en los mensajes.
{% endhint %}

Dentro del payload recibido en el webhook, los siguientes campos contienen la información principal del mensaje enviado por el usuario.

#### **messageType**

Indica el tipo de mensaje recibido.

<pre class="language-json" data-overflow="wrap" data-line-numbers><code class="lang-json"><strong>"messageType": "conversation"
</strong></code></pre>

En este caso, el valor **conversation** indica que se trata de un mensaje de texto simple.

#### **message**

Objeto que contiene el contenido del mensaje.

{% code overflow="wrap" lineNumbers="true" %}

```json
"message": {
  "conversation": "Hello!"
}
```

{% endcode %}

El campo **conversation** contiene el texto enviado por el usuario.

#### **sender**

Identificador del remitente del mensaje.

{% code overflow="wrap" lineNumbers="true" %}

```json
"sender": "51999999999@s.whatsapp.net"
```

{% endcode %}

Este valor corresponde al **ID de WhatsApp** del usuario que envía el mensaje.

Para obtener solo el número telefónico, puede remover el sufijo: @s.whatsapp.net

## Respuesta Esperada del Webhook

El servidor debe responder con código **HTTP 200** para confirmar la recepción del evento.


