API Datamart

API Datamart (1.0.0)

Introducción

Bienvenido a la documentación de la API de Datamart. Esta API le dará la posibilidad de conectar sus aplicaciones informáticas a diferentes servicios de Datamart para la sincronización de documentos tributarios, cesiones electrónicas, información de morosidad, comportamiento de pago y riesgo, reportes tributarios, entre otros.

Peticiones y respuestas

La interacción con el API se realiza sobre conexiones seguras utilizando el protocolo HTTPS. Las solicitudes sobre HTTP no serán aceptadas y la respuesta indicará que se debe volver a realizar la misma solicitud sobre HTTPS.
Las peticiones y respuestas se envían con formato JSON de acuerdo a los parámetros de cada método, y estas últimas se devuelven bajo códigos de estado HTTP. De forma general, 200 indica que la solicitud fue satisfactoria, 40X errores controlados y 500 cuando ocurre algún error no controlado. Se recomienda incluir el encabezado Content-Type: application/json en todas las solicitudes que envíen contenido en el cuerpo de la misma.

POST /rtt-sync/v1/subscriptions/1L/2B
Host: https://homo.api.datamart.pe
x-api-key: c40e7d1e28b94bdeb2dd16a736f09b16
Content-Type: application/json
{
  "atributo": "valor"
}

GET /sentinel-sync/download/1L/2B
Host: https://homo.api.datamart.pe
x-api-key: c40e7d1e28b94bdeb2dd16a736f09b16

Errores

Las respuestas no satisfactorias utilizan códigos de estado HTTP para indicar el tipo de error ocurrido. El cuerpo de respuesta JSON puede contener un código de nivel superior y un mensaje con una descripción detallada del problema.
Cada API describe detalladamente los posibles códigos de estado HTTP, el formato JSON de la respuesta, así como los diferentes códigos de nivel superior que puede responder.

Ejemplo error de validación (HTTP 400)

{
  "Codigo":"1"
  "Mensaje": "Se requiere la numeración de la factura"
}

Ejemplo error ApiKey incorrecta (HTTP 403)

{
  "message": "Forbidden"
}

Errores comunes
Los siguientes códigos de respuesta HTTP son comunes a todas las APIs.

HTTP Status Descripción
400 El cuerpo de la solicitud contiene una sintaxis incorrecta o está incompleta.
400 Errores de validación presentes. Vea la lista de errores de nivel superior para más detalles. (Vea abajo)
403 ApiKey incorrecta.
403 La URL solicitada está incorrecta.
500 Se produjo un error no controlado en la API.
504 No se pudo obtener respuesta en el tiempo esperado.

Errores de validación
Las respuestas con un código de nivel superior se devuelven cuando es posible corregir un problema específico en la solicitud. La respuesta incluirá un mensaje descriptivo de los problemas detectados y un código para facilitar el tratamiento al problema.
La siguiente lista describe códigos de nivel superior comunes que pueden responder todas las APIs. Cada API describe detalladamente los posibles códigos de estado HTTP, el formato JSON de la respuesta, así como los diferentes códigos de nivel superior que puede responder.

  •   1 - El cuerpo de la solicitud o alguno de sus parámetros están incorrectos
  • 15 - El usuario proporcionado no está autorizado para realizar la acción solicitada
  • 60 - El cliente no está subscrito al servicio solicitado
  • 61 - El cliente ya está subscrito al servicio solicitado
  • 65 - Las credenciales proporcionadas no son correctas
  • 66 - La autenticación con certificado digital no está habilitada
  • 90 - Error no controlado (Internal Server Error)

Ejemplo de respuesta para una solicitud con credenciales inválidas:

{
  "Codigo":"65",
  "Mensaje": "Credenciales inválidas"
}

Acceso a las APIs

En Datamart disponemos de dos ambientes de trabajo, un ambiente de homologación sobre el que se pueden probar todas las integraciones a los diferentes servicios, y un ambiente que producción que una vez terminado el desarrollo se puede comenzar a consumir análogo al ambiente productivo. De esta forma el desarrollo de nuevas funcionalidades o integraciones no afecta el ambiente de producción.

Todos los servicios están disponibles en el ambiente de homologación y con las mismas funcionalidades. Para realizar solicitudes a las diferentes APIs solo se debe modificar el Host y ApiKey según el ambiente en que se desee operar.

Homologación: https://homo.api.datamart.pe.

Producción: https://api.datamart.pe.

Autorización

Para identificar y autorizar el acceso a las APIs se utiliza autorización por ApiKey.
Las ApiKeys de acceso pueden ser recuperadas y configuradas desde el Portal de Clientes. Cada ApiKey es configurada para ser utilizada en el ambiente de homologación o producción, para cada ambiente se obtendrá una ApiKey privada para autorizar todas las solicitudes. Debe asegurarse de proteger y nunca compartir los ApiKeys ya que tienen acceso a todos los datos de su cuenta.

ApiKey

ApiKey del cliente para autenticación y autorización en las APIs

Security Scheme Type: API Key
Header parameter name: x-api-key

IdCliente

Identificador del cliente para autenticación y autorización en las APIs

Security Scheme Type: API Key
Header parameter name: x-dmrt-customer-id

Token

Token de acceso

Security Scheme Type: API Key
Header parameter name: x-dm-connect-token

Notificaciones

La mayoría de los servicios envían notificaciones a los clientes sobre los datos que procesan. Estas notificaciones pueden ocurrir vía correo electrónico o webhook, a través del Portal de Clientes los clientes pueden seleccionar las configuraciones sobre cómo desea que ello ocurra y los métodos de seguridad que emplean.

Connect

Datamart Connect es la solución que permite integrar de manera sencilla la interacción que posibilita que un titular de los datos comparta la información solicitada de manera rápida y segura. La aplicación expone un pequeño workflow donde el usuario final navega por las etapas de Identificación, Consentimiento y Obtención de Datos Distintivos.


Incorporación del botón

Para incorporar el botón de Connect a su sitio web en modalidad Button deberá seguir los pasos siguientes:

Etiqueta para agregar el botón: agregue este texto donde desee que se renderice el botón.

<datamart-button>

Código para insertar en su sitio: agregue este código después de la etiqueta body de su sitio.

<script src="https://homo.connect.datamart.co/js/datamart-button.js"></script>

Código para insertar en tu HTML: agregue este código donde desee mostrar el botón

<datamart-button connectid="0*******c"></datamart-button>

Tener en cuenta que connectid="0*******c" deberá corresponderse con el identificador asignado al botón creado para su uso.

Renderización del botón

El formato de renderización del botón se encuentra asociado al connectid, siendo estos los formatos disponibles.

Nota
Los scripts de código asociados al botón se generarán automáticamente al finalizar el wizard de configuración.

Atributos del botón

  • connectid: es el identificador de la conexión.
  • subscribername: es el nombre del suscriptor.
  • subscriberid: es el identificador del suscriptor.
  • authorizername: es el nombre de contacto.
  • authorizeremail: es el correo de contacto.
  • authorizermobile: es el número de móvil de contacto.
  • nodocument: es el número de documento.
  • validatesubscription: es para validar la suscripción.
  • uibuttonstyle: es el estilo del botón.
  • uibuttonshape: es la forma del botón.
  • uibuttoncolor: es el color del botón.
  • uibuttondirection: es la dirección del botón.
  • uibuttoncustomlogo: es el logotipo personalizado del botón.
  • uibuttontext: es el texto del botón.
  • uibuttonshowexplanation: indica si se debe mostrar explicación del botón.
  • uibuttonshowtagline: indica si se debe mostrar el eslogan del botón.
  • uibuttonbgbox: es el cuadro de fondo del botón.
  • uibuttonColorText: es el color y texto del botón.
  • uiboxtheme: indica si se le agrega sombra a la caja o se le agrega borde.
  • uisamewindow: indica si se debe abrir el widget en la misma ventana.

Atributos generales para configurar el botón

  1. El atributo connectid es utilizado para identificar de manera única cada conexión asociada al botón de Connect.

  2. El atributo subscribername se utiliza para identificar a la empresa o la persona que se va a suscribir a la conexión.


  3. El atributo subscriberid es utilizado para identificar al suscriptor (RUT en Chile/RUC en Perú).


  4. El atributo authorizername se refiere al nombre del contacto que va a suscribirse a los servicios para los que fue configurada la conexión.


  5. El atributo authorizeremail es el correo asociado a la persona de contacto.


  6. El atributo authorizermobile es el número de teléfono asociado a la persona de contacto.


  7. El atributo nodocument es el identificador personal de un susbcriptor, digase número de DNI o de cédula.


  8. El atributo validatesubscription se utiliza para verificar el estado del suscriptor. Puede tomar los valores "true" o "false", en caso de que el valor sea "true", verificará el estado de la suscripción y las posibles respuestas son: "suscrito", "no suscrito", "actualizar credenciales" o "aceptar términos".


Los datos relativos al authorizername, authorizeremail y authorizermobile, son requeridos para identificar a la persona que acepta los términos y condiciones.

Atributos opcionales para personalizar el estilo del botón

El botón tomará por defecto el diseño que le haya sido definido al momento de su configuración; sin embargo, admitirá que le sean pasados los siguientes parámetros que cambiarán su forma de renderización.

  1. uibuttonstyle: admite dos estilos: "custom" y "classic". El estilo "custom" permite personalizar completamente el diseño del botón según las preferencias, mientras que el estilo "classic" permite elegir un diseño predefinido y no permite personalizaciones adicionales. El botón se mostrará con un estilo clásico y no se aplicarán otros atributos opcionales. Es posible elegir el estilo que mejor se adapte a sus necesidades y preferencias de diseño.



  2. uibuttonshape: el atributo uibuttonshape permite definir el contorno del botón. El atributo uibuttonshape admite tres opciones: “rectangle” (rectángulo), “semi-round” (semirredondo) y “round” (redondo). Es posible utilizar el atributo uibuttonshape para personalizar la forma del botón según sus preferencias.





  3. uibuttoncolor: el atributo uibuttoncolor permite definir el color del botón utilizando diferentes formatos, como valores hexadecimales, referencias a colores CSS (por ejemplo, "red", "rgb", etc.). Es posible utilizar este atributo para personalizar el color del botón según sus preferencias.



  4. uibuttondirection: admite dos opciones: "left" (izquierda) y "right" (derecha). Este atributo solo se aplica cuando el valor del atributo uibuttonstyle es "custom". Es posible utilizar el atributo uibuttondirection para definir la dirección en la que se muestra el color base del botón. Por ejemplo, si establece uibuttondirection como "left", el color base se mostrará en el lado izquierdo del botón. Si establece uibuttondirection como "right", el color base se mostrará en el lado derecho del botón.



  5. uibuttoncustomlogo: este atributo permite personalizar el logotipo del botón. Es posible agregar cualquier dato aceptado por la etiqueta , como una dirección URL o un archivo svg. Puede utilizar este atributo para agregar su propio logotipo al botón y personalizar aún más su apariencia. Simplemente proporciona la dirección o el archivo svg que desea utilizar como logotipo.



  6. uibuttontext: este atributo se utiliza para definir el texto que aparecerá en el botón. Sin embargo, es importante tener en cuenta que si el texto es demasiado extenso, puede afectar la estética.



  7. uibuttonshowexplanation: este atributo se utiliza para definir si se muestra o no el texto de ayuda en el botón. Si establece este atributo como "true", se mostrará el texto de ayuda; si lo establece como "false", se ocultará. Esto puede ser útil para proporcionar información adicional al usuario sobre el funcionamiento del botón o para mantener un diseño más limpio y minimalista.



  8. uibuttonshowtagline: este atributo se utiliza para definir si se muestra el eslogan o no. Si establece este atributo como "true", se mostrará el eslogan; si lo establece como "false", se ocultará. Esto puede ser útil para proporcionar información adicional o una llamada a la acción junto con el botón.



  9. uibuttonbgbox: este atributo se utiliza para definir el color de fondo de la caja que contiene el botón. Admite cualquier formato CSS válido para especificar colores, como valores hexadecimales, nombres de colores CSS (por ejemplo, "red", "blue", etc.) o valores rgb.



  10. uibuttonColorText: este atributo se utiliza para definir el color del texto del botón. Admite cualquier formato CSS válido para especificar colores, como valores hexadecimales, nombres de colores CSS (por ejemplo, "red", "blue", etc.) o valores rgb.



  11. uiboxtheme: este atributo admite las propiedades uiboxshadow y uiboxborde. La propiedad uiboxshadow, se utiliza para mostrar una sombra alrededor de la caja del botón. La propiedad uiboxborde se utiliza para mostrar un borde definido alrededor de la caja.



  12. uisamewindow: este atributo se utiliza para controlar la carga del widget en la misma ventana o en una nueva. Por defecto, está establecido como false, lo que significa que el widget se abrirá en una ventana auxiliar. Si desea que el widget se abra en la misma ventana, puede establecer uisamewindow como true.



Eventos de la aplicación de suscripción

Al abrir, la app de suscripción se desplegará en una nueva pestaña manteniendo la comunicación con el sitio que lo invocó a través de un socket; mediante el cual ambas aplicaciones podrán comprender la condición en la que se encuentran.

onstatuschange: este evento se ejecuta cuando ocurre alguna acción dentro del widget. Cuando este evento se dispara, se envía un mensaje con el nombre del evento que ha ocurrido.

Aquí tienes una lista de los posibles eventos que pueden ocurrir dentro del widget:

  • start_process: este evento ocurre cuando el usuario ha llenado el formulario de contacto. Puede utilizarse para realizar alguna acción específica cuando el usuario ha iniciado el proceso de suscripción.
  • Initialized: este evento ocurre cuando comienza el proceso de suscripción. Puede utilizarse para realizar alguna acción específica al inicio del proceso de suscripción.

Cuando se dispara alguno de estos eventos, se envía un mensaje con la siguiente estructura: { eventName: 'NOMBRE_DEL_EVENTO' }. El valor de 'NOMBRE_DEL_EVENTO' será el nombre del evento que ha ocurrido.

Puedes utilizar estos eventos y sus respectivos mensajes para realizar acciones específicas dentro de tu aplicación en respuesta a las interacciones del usuario con el widget de suscripción.

const element = document.createElement("datamart-button");

element.addEventListener('onstatuschange', (e) => {
  console.log('--------->onstatuschange', e);
});

oninitialized: este evento ocurre cuando comienza el proceso de suscripción. Puede utilizarse para realizar alguna acción específica al inicio del proceso de suscripción.

Puedes utilizar este evento para realizar acciones específicas al inicio del proceso de suscripción, como mostrar un mensaje de bienvenida, realizar alguna validación adicional o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento tiene la siguiente estructura: { eventName: 'initialized' }.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('oninitialized', (e) => {
  console.log('--------->oninitialized', e);
});

onuserclose: este evento ocurre cuando el usuario cierra el widget sin haber completado completamente el flujo de suscripción. Puede utilizarse para realizar alguna acción específica cuando esto sucede.

Puedes utilizar este evento para realizar acciones específicas cuando el usuario cierra el widget sin completar la suscripción, como mostrar un mensaje de despedida, guardar el progreso realizado hasta el momento o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onuserclose', (e) => {
  console.log('--------->onuserclose', e);
});

onsuccess: este evento se ejecuta cuando el botón verifica la suscripción del subscriberid y como resultado determina que el usuario está suscrito. Este evento puede ocurrir al principio cuando el usuario ya estaba previamente suscrito, o cuando se cierra el widget y el usuario se suscribe correctamente.

Puedes utilizar este evento para realizar acciones específicas cuando se verifica la suscripción del usuario, como mostrar un mensaje de confirmación, redirigir a una página de agradecimiento o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onsuccess', (e) => {
  console.log('--------->onsuccess', e);
});

oninactivity: este evento se ejecuta cuando el usuario se mantiene inactivo por al menos 5 minutos, con la app de suscripción abierta en el navegador.

Puedes utilizar este evento para realizar acciones específicas cuando el usuario se mantiene inactivo por un período de tiempo determinado, como mostrar un mensaje de advertencia, cerrar la app de suscripción o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('oninactivity', (e) => {
  console.log('--------->oninactivity', e);
});

onunauthorized: este evento se ejecuta cuando se integra la conexión desde un dominio no autorizado.

Puedes utilizar este evento para realizar acciones específicas cuando la conexión se integra desde un dominio no autorizado, como mostrar un mensaje de error, redirigir a una página de error o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onunauthorized', (e) => {
  console.log('--------->onunauthorized', e);
});

onbadconfiguration: este evento se ejecuta cuando existe algún error en la configuración de la conexión.

Puedes utilizar este evento para realizar acciones específicas cuando se produce un error en la configuración de la conexión, como mostrar un mensaje de error, realizar alguna acción de recuperación o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onbadconfiguration', (e) => {
  console.log('--------->onbadconfiguration', e);
});

onconectionnotready: este evento se ejecuta cuando la conexión se encuentra en proceso de creación, y aún no se encuentra lista para ser utilizada.

Puedes utilizar este evento para realizar acciones específicas cuando la conexión aún no está lista para ser utilizada, como mostrar un mensaje de espera, deshabilitar ciertas funcionalidades o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onconnectionnotready', (e) => {
  console.log('--------->onconnectionnotready', e);
});

oninvalidsuscriberid: este evento se ejecuta cuando el RUT del suscriptor no es válido.

Puedes utilizar este evento para realizar acciones específicas cuando el RUT del suscriptor no es válido, como mostrar un mensaje de error, solicitar al usuario que ingrese un RUT válido o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('oninvalidsubscriberid', (e) => {
  console.log('--------->oninvalidsubscriberid', e);
});

oninvalidtoken: este evento se ejecuta cuando se envía un token inválido.

Puedes utilizar este evento para realizar acciones específicas cuando se envía un token inválido, como mostrar un mensaje de error, solicitar al usuario que ingrese un token válido o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('oninvalidtoken', (e) => {
  console.log('--------->oninvalidtoken', e);
});

onunknownerror: este evento se ejecuta cuando se desencadena un error desconocido.

Puedes utilizar este evento para realizar acciones específicas cuando se produce un error desconocido, como mostrar un mensaje de error genérico, registrar el error para su posterior análisis o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onunknownerror', (e) => {
  console.log('--------->onunknownerror', e);
});

onvalidationerror: este evento se ejecuta cuando se desencadena un error de validación.

Puedes utilizar este evento para realizar acciones específicas cuando se produce un error de validación, como mostrar un mensaje de error al usuario, resaltar los campos inválidos o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onvalidationerror', (e) => {
  console.log('--------->onvalidationerror', e);
});

onapikeyrequired: esto evento se ejecuta cuando se requiere una clave de API.

Puedes utilizar este evento para realizar acciones específicas cuando se requiere una clave de API, como mostrar un mensaje al usuario solicitando la clave, redirigir a una página de configuración de la clave de API o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onapikeyrequired', (e) => {
  console.log('--------->onapikeyrequired', e);
});

onexceededquota: este evento se ejecuta cuando se excede la cantidad de suscripciones permitidas.

Puedes utilizar este evento para realizar acciones específicas cuando se excede la cantidad de suscripciones permitidas, como mostrar un mensaje de error al usuario, limitar la funcionalidad del botón o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento es un valor booleano.

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onexceededquota', (e) => {
  console.log('--------->onexceededquota', e);
});

onsuscriberstatuschange: este evento se ejecuta cuando cambia el estado del botón de acuerdo al estado del suscriptor.

Puedes utilizar este evento para realizar acciones específicas cuando cambia el estado del botón de acuerdo al estado del suscriptor, como actualizar la interfaz de usuario para reflejar el nuevo estado, mostrar mensajes informativos al usuario o cualquier otra acción que desees realizar en ese momento.

El mensaje enviado con este evento puede tener diferentes valores, como "Verificando", "NoSuscrito", "ActualizarCredenciales", "ActualizarTerminos" o "Suscrito".

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onsubscriberstatuschange', (e) => {
  console.log('--------->onsubscriberstatuschange', e);
});

onsessionoperations: este evento se ejecuta para mostrar las operaciones que se van realizando durante una sesión.

Puedes utilizar este evento para mostrar las operaciones que se van realizando durante una sesión, como obtener el ID del suscriptor, compartir información de contacto, seleccionar documentos para suscribirse, actualizar términos, completar la sesión, entre otras operaciones.

El mensaje enviado con este evento puede tener diferentes valores, como "started_session", "get_subscriber_id", "shared_contact_info", "selected_documents_to_subscribe", "updated_terms" o "completed_session".

Aquí tienes un ejemplo de cómo puedes escuchar este evento y realizar una acción específica cuando se dispare:

element.addEventListener('onsessionoperations', (e) => {
  console.log('--------->onsessionoperations', e);
});

Estado de suscripción

Con el fin de mejorar la experiencia de uso, en caso de que el botón reciba como parámetro el subscriberid, la aplicación validará el estado de la suscripción de los servicios que se encuentran configurados para ese connectid. El proceso de validación sólo se ejecutará en caso de que el botón tenga activada la propiedad de validatesubscription y al invocarlo se envíe un subscriberid válido.

El resultado de este proceso condicionará el despliegue del mensaje del botón de Datamart Connect.

Caso Estado suscripción Estado credencial Aceptación de Términos de uso Despliegue
1 Suscrito a todos los servicios Válida Aceptados
2 Actualizar credenciales Inválida Aceptados
3 Suscrito a todos los servicios Válida No aceptados
4 No suscrito a alguno de los servicios - -

Suscripción previa a la implementación de Connect

En el caso de los clientes que hayan realizado procesos de suscripción a los diferentes servicios configurados en el botón, desde otras vías previas a la implementación de Connect; deberán tener en cuenta que el botón mostrará el estado: acepte los nuevos términos y condiciones. Para estos casos, si el cliente así lo considerase, podría solicitar la generación de una versión de migración de los Términos de uso. Esta versión hará referencia a la aprobación previa de los Términos por parte del cliente a través de otras plataformas; sin necesidad de solicitarles nuevamente su aprobación.


Recomendaciones

En el caso de que se desee emplear la misma configuración de servicios y finalidades a suscribir, se recomienda que se ocupe un único botón. Cada botón constituye una aplicación, por lo que tiene definidos sus propios Términos de uso. Si se emplean varios botones, los clientes que hayan sido suscritos por un botón, deberán aceptar nuevamente los términos de uso al usar un nuevo botón.

Connect

Servicio que permite la suscripción a los servicios de datamart: Sincronización de Comprobante de Pagos Electrónicos(CPESync), Reporte Tributario para Terceros en SUNAT(RTT), Balances Financieros registrados en SUNAT(BalanceSheet), Información sobre Deudas Tributarias sin pagar(CoerciveDebt), Registro Centralizado de Facturas Negociables(Factrack), Descarga de información del Bureau de Crédito Sentinel(Sentinel), Declaraciones y pagos registrados en SUNAT(DecPagos), Información general del contribuyente Ficha RUC(Rucfolder), Información de Administradora de Fondos de Pensiones(AFPSync); así como generar los consentimientos de Políticas de Privacidad y de Términos y Condiciones.

Crear token

Petición para crear un token de acceso

Authorizations:
ApiKey
Request Body schema: application/json
One of
Tipo
required
string
IdConexion
required
string

Responses

Request samples

Content type
application/json
Example
{
  • "Tipo": "Conexion",
  • "IdConexion": "9b7056b0-9136-4e7d-ad37-64603f2fc937"
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "",
  • "Data": {
    }
}

Obtener conexión

Petición para obtener la información asociada a una conexión.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "",
  • "Conexion": {
    }
}

Obtener vista previa de la política de privacidad de los datos

Petición para obtener una vista previa de la política de privacidad de los datos.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

query Parameters
no-markup
any
Ejemplo: no-markup=true

Tipo de salida, si el valor es true la salida es en texto plano

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}/privacy-politics-preview' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "",
  • "VistaPrevia": "\n\t<style type=\"text/css\">\n\t\t@page { size: 21.59cm 27.94cm; margin-left: 3cm; margin-right: 3cm; margin-top: 2.5cm; margin-bottom: 2.5cm }\n\t\tp { margin-bottom: 0.25cm; direction: ltr; line-height: 115%; text-align: left; orphans: 2; widows: 2 }\n\t</style>\n\n<p style=\"margin-bottom: 0cm; line-height: 100%\"><font size=\"4\" style=\"font-size: 14pt\"><b>Datamart\n</b></font>\n</p>\n<br>\n<p style=\"margin-bottom: 0cm; line-height: 106%\">Datamart SpA, con\ndomicilio en Alonso de Monroy 2869, oficina 201 ..."
}

Obtener vista previa de las finalidades de los datos

Petición para obtener vista previa de las finalidades de los datos.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}/terms-finalities-preview' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{
  • "Codigo": 200,
  • "Finalidades": {
    },
  • "Mensaje": ""
}

Obtener vista previa de los términos y condiciones

Petición para obtener una vista previa de los términos y condiciones dado una selección de documentos.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

query Parameters
no-markup
any
Ejemplo: no-markup=true

Tipo de salida, si el valor es true la salida es en texto plano

documents
any
Ejemplo: documents=Cpe,Rtt,Bsh,DeudaCoactiva,Factrack

Los códigos de los documentos separados por comas. Si no se especifica entonces se asumen todos los documentos en la vista previa. Los documentos obligatorios siempre se asumen.

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}/terms-preview' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "",
  • "VistaPrevia": "\n\t<style type=\"text/css\">\n\t\t@page { size: 21.59cm 27.94cm; margin-left: 3cm; margin-right: 3cm; margin-top: 2.5cm; margin-bottom: 2.5cm }\n\t\tp { margin-bottom: 0.25cm; direction: ltr; line-height: 115%; text-align: left; orphans: 2; widows: 2 }\n\t</style>\n\n<p style=\"margin-bottom: 0cm; line-height: 100%\"><font size=\"4\" style=\"font-size: 14pt\"><b>Datamart\n</b></font>\n</p>\n<br>\n<p style=\"margin-bottom: 0cm; line-height: 106%\">Datamart SpA, con\ndomicilio en Alonso de Monroy 2869, oficina 201 ..."
}

Obtener credenciales requeridas

Petición para obtener las credenciales requeridas dado una selección de documentos.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

query Parameters
documents
any
Ejemplo: documents=Cpe,Rtt,Bsh,DeudaCoactiva,Factrack

Los códigos de los documentos separados por comas

supportedCredentials
any
Ejemplo: supportedCredentials=ClaveSol,ClaveSolDNI

Los códigos de las credenciales soportadas separadas por comas

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}/required-credentials' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{
  • "Codigo": 0,
  • "Mensaje": "",
  • "ConfiguracionesDeCredencialesSoportadas": [
    ],
  • "AlternativasDeCredencialesPorDocumentos": [
    ]
}

Obtener estado de suscriptor

Petición para obtener el estado actual de un suscriptor para una conexión.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

subscriber-id
required
any
Ejemplo: 2040045032

Id del suscriptor

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}/subscribers/{subscriber-id}' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "",
  • "EstadoDeSuscriptor": {
    }
}

Crear sesión

Petición para crear una sesión.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

subscriber-id
required
any
Ejemplo: 2040045032

Id del suscriptor

Request Body schema: application/json
IpClienteWeb
string <IPV4 | IPV6>
object

Los datos de contacto.
Las llaves y los formatos de los valores deben ser los mismos que los configurados en la conexión.
Los valores no son editables una vez actualizados.

Arreglo de objects

Códigos de los documentos para actualizar consentimiento o actualizar suscripción.
Para eliminar las suscripciones el campo nunca pudo haber sido actualizado y se debe omitir.

object

Un objeto donde las llaves son los códigos de las credenciales y los valores son objetos json con las llaves y valores de los campos requeridos por la credencial.
Las credenciales que hayan sido previamente actualizadas en la sesión se sobreescriben y las que no se agregan.
Al actualizar una credencial comienza un proceso asíncrono de validación de la misma.

ActualizarSuscriptor
string
Enum: "ActualizarConsentimiento" "Actualizar" "Eliminar"

ActualizarConsentimiento: Genera el consentimiento.
Actualizar: Genera el consentimiento y actualiza la suscripción a los documentos seleccionados.
Eliminar: Elimina la suscripción a todos los documentos de la conexión.
La propiedad se debe omitir si no se quiere realizar ninguna de las operaciones antes descritas. Si los datos de entrada para cada opción son válidos comienza un proceso asíncrono de verificación, el estado de la sesión se marca como Verificando y al terminar la verificación se marca como Completada o Incompleta según sea el resultado.

Responses

Request samples

Content type
application/json
Example
{
  • "IpClienteWeb": "10.2.3.4",
  • "InformacionDeContacto": {
    },
  • "Documentos": [
    ],
  • "ActualizarSuscriptor": "ActualizarConsentimiento"
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "",
  • "IdSesion": "476d45ac-9b3b-407f-8bdc-6445ea2fc99b"
}

Obtener sesión

Petición para obtener el estado de una sesión.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

subscriber-id
required
any
Ejemplo: 2040045032

Id del suscriptor

session-id
required
any
Ejemplo: 476d45ac-9b3b-407f-8bdc-6445ea2fc99b

Id de la sesión

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}/subscribers/{subscriber-id}/sessions/{session-id}' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "",
  • "Sesion": {
    }
}

Actualizar sesión

Petición para actualizar el estado de una sesión.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

subscriber-id
required
any
Ejemplo: 2040045032

Id del suscriptor

session-id
required
any
Ejemplo: 476d45ac-9b3b-407f-8bdc-6445ea2fc99b

Id de la sesión

Request Body schema: application/json
IpClienteWeb
string <IPV4 | IPV6>
object

Los datos de contacto.
Las llaves y los formatos de los valores deben ser los mismos que los configurados en la conexión.
Los valores no son editables una vez actualizados.

Arreglo de objects

Códigos de los documentos para actualizar consentimiento o actualizar suscripción.
Para eliminar las suscripciones el campo nunca pudo haber sido actualizado y se debe omitir.

object

Un objeto donde las llaves son los códigos de las credenciales y los valores son objetos json con las llaves y valores de los campos requeridos por la credencial.
Las credenciales que hayan sido previamente actualizadas en la sesión se sobreescriben y las que no se agregan.
Al actualizar una credencial comienza un proceso asíncrono de validación de la misma.

ActualizarSuscriptor
string
Enum: "ActualizarConsentimiento" "Actualizar" "Eliminar"

ActualizarConsentimiento: Genera el consentimiento.
Actualizar: Genera el consentimiento y actualiza la suscripción a los documentos seleccionados.
Eliminar: Elimina la suscripción a todos los documentos de la conexión.
La propiedad se debe omitir si no se quiere realizar ninguna de las operaciones antes descritas. Si los datos de entrada para cada opción son válidos comienza un proceso asíncrono de verificación, el estado de la sesión se marca como Verificando y al terminar la verificación se marca como Completada o Incompleta según sea el resultado.

Responses

Request samples

Content type
application/json
Example
{
  • "IpClienteWeb": "10.2.3.4",
  • "InformacionDeContacto": {
    },
  • "Documentos": [
    ],
  • "ActualizarSuscriptor": "ActualizarConsentimiento"
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": ""
}

Obtener documento recuperado

Petición para obtener documento recuperado.

Authorizations:
Token
path Parameters
customer-code
required
any
Ejemplo: DATAMART

Código del cliente en Datamart

connection-id
required
any
Ejemplo: 9b7056b0-9136-4e7d-ad37-64603f2fc937

Id de la conexión

subscriber-id
required
any
Ejemplo: 2040045032

Id del suscriptor

session-id
required
any
Ejemplo: 476d45ac-9b3b-407f-8bdc-6445ea2fc99b

Id de la sesión

document-code
required
any
Ejemplo: Cpe

Código del documento

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/v1/customers/{customer-code}/connections/{connection-id}/subscribers/{subscriber-id}/sessions/{session-id}/documents/{document-code}' \
  --header 'x-dm-connect-token: {CONNECT-TOKEN}'

Response samples

Content type
application/json
{}

AFP Perú

Servicio de sincronización para las AFP. Para una AFP suscrita al servicio, permite a sus afiliados obtener la información asociada a sus fondos de pensiones y los certificados que tengan disponibles.

Código de AFPs
Este servicio funciona para las siguientes AFPs, junto con las credenciales necesarias para cada una.

Tipo de AFP Credenciales
Usuario Clave
Prima DNI Clave AFP DNI
Habitat DNI Clave AFP DNI
Carnet de Extranjería Clave AFP CE
Lib. Adolesc. Trab. Clave AFP LAT
Pasaporte Clave AFP PAS

Notificaciones
El servicio permite recibir vía webhook o por correo electrónico notificaciones con la información del afiliado.
El siguiente modelo representa los datos enviados en la notificación.

DNI
string

Identificador

EnlaceJson
string <url>

Enlace para descarga del documento en formato JSON

TipoAfp
string
Enum: "Prima" "Habitat"

Nombre de la AFP asociada al cliente

  • Prima - AFP Prima
  • Habitat - AFP Habitat
FechaGeneracion
string <date-time>

Indica la fecha en que se obtuvo el documento

Extras
object

Datos adicionales enviados en la notificación

Servicio
string

Código del servicio que envía la notificación

Notificacion
string

Código de la notificación

{}

Crear subscripción

Permite realizar la subscripción al servicio de AFP Perú.

Authorizations:
ApiKey
header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-susbscriber-segment
any
Ejemplo: personas

Segmento(s) de la subscripción. Un segmento indica, por ejemplo, el área de negocio al que pertenece el subscriptor.

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
required
object (CredencialesAFP)
TipoAfp
required
string
Enum: "Prima" "Habitat"

Nombre de la AFP asociada al cliente

  • Prima - AFP Prima
  • Habitat - AFP Habitat
SubscriptorId
required
string

identificador de la subscripción

VigenciaSubscripcion
string
Enum: "Indefinida" "Transitoria"

Indica la vigencia de la subscripción.

  • Indefinida - Permite obtener el objeto AFP actualizado periódicamente.
  • Transitoria - Se notifica el objeto AFP una única vez, sin crearse la suscripción.
ExtrasNotificacion
object

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "TipoAfp": "Prima",
  • "SubscriptorId": "1-8",
  • "VigenciaSubscripcion": "Indefinida",
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "Empresa subscrita al servicio"
}

Actualizar subscripción

Permite actualizar la subscripción al servicio.

Authorizations:
ApiKey
header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-susbscriber-segment
any
Ejemplo: personas

Segmento(s) de la subscripción. Un segmento indica, por ejemplo, el área de negocio al que pertenece el subscriptor.

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
required
object (CredencialesAFP)
TipoAfp
required
string
Enum: "Prima" "Habitat"

Nombre de la AFP asociada al cliente

  • Prima - AFP Prima
  • Habitat - AFP Habitat
SubscriptorId
required
string

identificador de la subscripción

VigenciaSubscripcion
string
Enum: "Indefinida" "Transitoria"

Indica la vigencia de la subscripción.

  • Indefinida - Permite obtener el objeto AFP actualizado periódicamente.
  • Transitoria - Se notifica el objeto AFP una única vez, eliminándose la suscripción existente.
ExtrasNotificacion
object

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "TipoAfp": "Prima",
  • "SubscriptorId": "1-8",
  • "VigenciaSubscripcion": "Indefinida",
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "Empresa subscrita al servicio"
}

Crear subscripción asincrónicamente

Permite realizar la subscripción al servicio de AFP Perú.

Authorizations:
ApiKey
header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-susbscriber-segment
any
Ejemplo: personas

Segmento(s) de la subscripción. Un segmento indica, por ejemplo, el área de negocio al que pertenece el subscriptor.

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
required
object (CredencialesAFP)
TipoAfp
required
string
Enum: "Prima" "Habitat"

Nombre de la AFP asociada al cliente

  • Prima - AFP Prima
  • Habitat - AFP Habitat
SubscriptorId
required
string

identificador de la subscripción

VigenciaSubscripcion
string
Enum: "Indefinida" "Transitoria"

Indica la vigencia de la subscripción.

  • Indefinida - Permite obtener el objeto AFP actualizado periódicamente.
  • Transitoria - Se notifica el objeto AFP una única vez, sin crearse la suscripción.
ExtrasNotificacion
object

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "TipoAfp": "Prima",
  • "SubscriptorId": "1-8",
  • "VigenciaSubscripcion": "Indefinida",
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json
{
  • "RequestId": "abccc2a1x-i1e5-12a3-a234-u5cof4c98765",
  • "Codigo": "0",
  • "Mensaje": "Se realizo correctamente la peticion a keyshield para que valide las credenciales"
}

Actualizar subscripción asincrónicamente

Permite actualizar la subscripción al servicio.

Authorizations:
ApiKey
header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-susbscriber-segment
any
Ejemplo: personas

Segmento(s) de la subscripción. Un segmento indica, por ejemplo, el área de negocio al que pertenece el subscriptor.

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
required
object (CredencialesAFP)
TipoAfp
required
string
Enum: "Prima" "Habitat"

Nombre de la AFP asociada al cliente

  • Prima - AFP Prima
  • Habitat - AFP Habitat
SubscriptorId
required
string

identificador de la subscripción

VigenciaSubscripcion
string
Enum: "Indefinida" "Transitoria"

Indica la vigencia de la subscripción.

  • Indefinida - Permite obtener el objeto AFP actualizado periódicamente.
  • Transitoria - Se notifica el objeto AFP una única vez, eliminándose la suscripción existente.
ExtrasNotificacion
object

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "TipoAfp": "Prima",
  • "SubscriptorId": "1-8",
  • "VigenciaSubscripcion": "Indefinida",
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json
{
  • "RequestId": "abccc2a1x-i1e5-12a3-a234-u5cof4c98765",
  • "Codigo": "0",
  • "Mensaje": "Se realizo correctamente la peticion a keyshield para que valide las credenciales"
}

Eliminar subscripción

Permite eliminar la subscripción al servicio.

Authorizations:
ApiKey
path Parameters
subscriptor-id
required
string
Ejemplo: 1-8

identificador de la subscripción

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-susbscriber-segment
any
Ejemplo: personas

Segmento(s) de la subscripción. Un segmento indica, por ejemplo, el área de negocio al que pertenece el subscriptor.

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
TipoAfp
required
string
Enum: "Prima" "Habitat"

Nombre de la AFP asociada al cliente

  • Prima - AFP Prima
  • Habitat - AFP Habitat

Responses

Request samples

Content type
application/json
{
  • "TipoAfp": "Prima"
}

Response samples

Content type
application/json

Respuesta satisfactoria

{
  • "Codigo": "0",
  • "Mensaje": "Subscripción eliminada"
}

Sincronizar

Permite iniciar la ejecución del servicio para actualizar los datos.

Authorizations:
ApiKey
path Parameters
subscriptor-id
required
string
Ejemplo: 1-8

identificador de la subscripción

query Parameters
tipo-afp
string
Ejemplo: tipo-afp=Prima

Nombre de la AFP asociada al usuario

  • Prima- AFP Prima
  • Habitat - AFP Habitat
header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/afp/v1/sync/{subscriptor-id}?tipo-afp=SOME_STRING_VALUE' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "Sincronización iniciada"
}

Descargar documento

Permite descargar la información asociada a la AFP del usuario.

Authorizations:
ApiKey
path Parameters
subscriptor-id
required
string
Ejemplo: 1-8

identificador de la subscripción

query Parameters
output
string
Enum: "file" "inline"
Ejemplo: output=inline

Indica la salida de los datos, en el cuerpo de la respuesta o un enlace a un archivo externo. Su valor por defecto es inline

generation-date
string
Ejemplo: generation-date=20230508041500

Fecha de generación del documento en formato YYYYMMDDhhmm

tipo-afp
string
Ejemplo: tipo-afp=Prima

Nombre de la AFP asociada al usuario

  • Prima- AFP Prima
  • Habitat - AFP Habitat
header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/afp/v1/document/{subscriptor-id}?output=SOME_STRING_VALUE&generation-date=SOME_STRING_VALUE&tipo-afp=SOME_STRING_VALUE' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
Example

Documento en cuerpo

{
  • "FileBase64": null,
  • "EnlaceJson": null,
  • "FechaGeneracion": "2023-05-19T15:23",
  • "AfpData": {
    },
  • "Codigo": "0",
  • "Mensaje": null
}

Descargar certificado asincrónicamente

Permite realizar el proceso de descarga del certificado indicado.

Authorizations:
ApiKey
path Parameters
subscriptor-id
required
string
Ejemplo: 1-8

identificador de la subscripción

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
required
object (CredencialesAFP)
TipoAfp
required
string
Enum: "Prima" "Habitat"

Nombre de la AFP asociada al cliente

  • Prima - AFP Prima
  • Habitat - AFP Habitat
TipoCertificado
string
Enum: "Afiliacion" "Seguro" "Sunat"

Indica el tipo de certificado solicitado

  • Afiliacion Seguro - AFP Prima
  • Sunat - AFP Habitat

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "TipoAfp": "Prima",
  • "TipoCertificado": "Afiliacion"
}

Response samples

Content type
application/json
{
  • "RequestId": "abccc2a1x-i1e5-12a3-a234-u5cof4c98765",
  • "Codigo": "0",
  • "Mensaje": "Se realizo correctamente la peticion del certificado"
}

Obtener certificado asincrónicamente

Permite obtener el certificado.

Authorizations:
ApiKey
path Parameters
subscriptor-id
required
string
Ejemplo: 1-8

identificador de la subscripción

RequestId
required
string
Ejemplo: abccc2a1x-i1e5-12a3-a234-u5cof4c98765

Identificador para las solicitudes

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/afp/v1/certificate/async/{subscriptor-id}/{RequestId}/status' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{}

Obtener estado de la subscripción asincrónicamente

Authorizations:
ApiKey
path Parameters
RequestId
required
string
Ejemplo: abccc2a1x-i1e5-12a3-a234-u5cof4c98765

Identificador para las solicitudes

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/afp/v1/subscriptions/async/{RequestId}/status' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{}

CPE Sync

Servicio de sincronización de Comprobante de Pago Electrónicos (CPEs) en formato XML y JSON desde la SUNAT y proveedores de factura electrónica.
Para una empresa subscrita al servicio, periódicamente y de forma automática se notifica vía webhook o por correo electrónico cuando la empresa subscrita ha emitido o recibido un CPE.

Notificaciones
El servicio permite notificar vía webhook o por correo electrónico notificaciones con los documentos emitidos y recibidos para una empresa. Se incluye un parámetro type en la URL del webhook para indicar el tipo de notificación enviada.

  • CPE sincronizado: Parámetro type=CPE_SINCRONIZADO.

Notificaciones

El campo Version es un indicador sustancial en la notificación. Este campo indica el origen de sincronización del documento, y en base a este origen la información notificada varia en los documentos enviados siendo Json para el caso Version = 0 y Json, XML, PDF para el caso Version = 1. Ademas los campos TipoCPE y TipoCPEDesc también varian de acuerdo al tipo de Version a continuación ambas opciones.

Versión 0 Versión 1
TipoCPE TipoCPEDesc TipoCPE TipoCPEDesc
00 Otros 01 Factura Electrónica
01 Factura 21 NC - Anulación de operación
03 Boleta de Venta 23 NC - Descuento global 
04 Boleta de Compra 24 NC - Devolución total
05 Boletos de Transporte Aéreo 25 NC - Corrección por error en la descripción 
06 Carta de porte aéreo 26 NC - Devolución por ítem
07 Nota de Crédito 27 NC - Descuento por ítem
08 Nota de Débito 29 NC - Ajustes montos y/o fechas de pago
11 Póliza emitida por la Bolsa de Valores 41 ND - Intereses por mora
12 Ticket de máquina registradora 42 ND - Aumento de valor
13 Documento Bajo Control de SBS 43 ND - Penalidad
14 Recibo de Servicios Públicos Electrónico
15 Boletos emitidos por servicio de transporte
16 Boleto de viaje de transporte interprovincial
17 Documentos emitidos por la Iglesia Católica
18 Documentos emitidos por las AFP
19 Boleto por atracciones y espectáculos públicos
21 Conocimiento de embarque de carga marítima
23 Pólizas de Adjudicación
24 Certificado de pago PERUPETRO S.A.
25 Documento de Atribución
27 Seguro Complementario de Trabajo de Riesgo
28 Etiqueta por el pago de la TUUA
29 Documentos emitidos por la COFOPRI
30 Documentos emitidos por el Adquiriente
32 Documentos emitidos garantía red principal
34 Documento Electrónico Autorizado del Operador
35 Documento Electrónico Autorizado del Adquirente
36 Recibo de Distribución de Gas Natural
37 Documentos emitidos por Serv. de Revisiones Técnicas
42 Documentos emitidos por TC Propias
43 Boleto de aviación transporte aéreo no regular
44 Billetes de lotería, rifas y apuestas
45 Documentos emitidos por CE y culturales
48 Comprobantes de Operaciones
49 Constancia de Depósito - IVAP
50 DUA/DAM
52 Despacho Simplificado – Exportación Simplificada
53 Declaración de Mensajería o Courier
55 BVME para transporte ferroviario de pasajeros
56 Comprobante de pago SEAE
64 Documento emitido por Servicio de transporte aéreo
87 Nota de Crédito Especial
88 Nota de Débito Especial
89 Nota de Ajuste de Operaciones - Ley N° 29972

El siguiente modelo representa los datos enviados en la notificación.

RUCEmisor
string <RUC>

RUC empresa proveedora del documento

RazonSocialEmisor
string

Razón social empresa proveedora del documento

TipoCPE
string

Tipo de documento

TipoCPEDesc
string

Descripción del tipo de documento

NroSerie
integer <int64>

Número de serie

Folio
integer <int64>

Folio del documento

RUCReceptor
string <RUC>

RUC empresa adquiriente del documento

RazonSocialReceptor
string

Razón social empresa adquiriente del documento

CodigoMoneda
string <string>

Código de la monenda

CodigoMonedaDesc
string <string>

Descripción del tipo de moneda

MntTotal
integer <int64>

Monto total del documento

ImporteTotal
integer <int64>

Monto total del documento

EnlaceZip
string <url>

Enlace para descarga del zip

EnlaceJson
string <url>

Enlace para descarga del documento en formato JSON

EnlaceXml
string <url>

Enlace para descarga del documento en formato XML

EnlaceXmlCpe
string <url>

Enlace para descarga de la CPE en formato XML

EnlacePdf
string <url>

Enlace para descarga del documento en formato PDF

EmitidoRecibido
string
Enum: 1 2

Indica si el documento fue

  • 1 - Emitido
  • 2 - Recibido
IndAnulado
string

Índice anulado

Origen
string
Enum: "SunatCOMPPAGO" "SunatPORTAL"

Origen facturador

  • SunatCOMPPAGO - SunatCOMPPAGO
  • SunatPORTAL - SunatPORTAL
FchEmis
date <yyyy-MM-dd>

Fecha emisión

Extras
object

Datos adicionales enviados en la notificación

Servicio
string

Servicio que envía la notificación

Notificacion
string

Código de la notificación

StrEmitidoRecibido
string
Enum: "Emitido" "Recibido"

StrEmitidoRecibido

  • Emitido - Emitido
  • Recibido - Recibido
Action
string
Enum: "Create" "Update"

Action

  • Create - Create
  • Update - Update
CondicionConformidadId
string
Enum: "01" "02" "03" "04"

Action

  • 01 - Sin Datos
  • 02 - Conformidad Expresa
  • 03 - Conformidad Presunta
  • 04 - Disconformidad
CondicionConformidadDesc
string
Enum: "Sin Datos" "Conformidad Expresa" "Conformidad Presunta" "Disconformidad"

Action

  • 01 - Sin Datos
  • 02 - Conformidad Expresa
  • 03 - Conformidad Presunta
  • 04 - Disconformidad
FechaCondicionConformidad
date <yyyy-MM-ddThh:mm:ss>

Fecha Condición Conformidad

FormaPagoDesc
string
Enum: "Contado" "Credito"

Forma Pago

  • Contado - Contado
  • Credito - Credito
FormaPagoId
string
Enum: "1" "2"

Forma Pago

  • 1 - Contado
  • 2 - Credito
DocAfecto
string

Documento Afecto

FechaVencimiento
date <yyyy-MM-ddThh:mm:ss>

Fecha de Vencimiento

Version
integer <int64>

Fuente del documento sincronizado

  • 0 - Registro Compra/Venta
  • 1 - Gestión Factoring
{
  • "RUCEmisor": "1B",
  • "RazonSocialEmisor": "Proveedor SA",
  • "TipoCPE": "01",
  • "TipoCPEDesc": "Factura electrónica",
  • "NroSerie": 103,
  • "Folio": 103,
  • "RUCReceptor": "1-8",
  • "RazonSocialReceptor": "Adquiriente SpA",
  • "CodigoMoneda": "Soles",
  • "CodigoMonedaDesc": "Soles",
  • "MntTotal": 10000,
  • "ImporteTotal": 10000,
  • "EnlaceZip": "string",
  • "EmitidoRecibido": "1",
  • "IndAnulado": 0,
  • "Origen": "SunatPORTAL",
  • "FchEmis": "2020-09-20T00:00:00.000Z",
  • "Extras": null,
  • "Servicio": "CPESync",
  • "Notificacion": "CPE_SINCRONIZADO",
  • "StrEmitidoRecibido": "Emitido",
  • "Action": "Create",
  • "CondicionConformidadId": "01",
  • "CondicionConformidadDesc": "Sin Datos",
  • "FechaCondicionConformidad": "2024-01-03T01:55:13.000Z",
  • "FormaPagoDesc": "Contado",
  • "FormaPagoId": "1",
  • "DocAfecto": "E001-379",
  • "FechaVencimiento": "2024-01-03T01:55:13.000Z",
  • "Version": 0
}

Subscribir empresa

Permite subscribir una empresa al servicio CPESync

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a subscribir al servicio

Request Body schema: application/json
required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Recurrencia
string
Default: "CadaHora"
Enum: "CadaHora" "Diario" "Semanal" "Mensual" "Trimestral" "Semestral" "Anual"

Frecuencia con la que se desea sincronizar el documento

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "Recurrencia": "CadaHora"
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Actualizar subscripción

Permite actualizar la subscripción de una empresa en el servicio CPESync.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a subscribir al servicio

Request Body schema: application/json
required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Recurrencia
string
Default: "CadaHora"
Enum: "CadaHora" "Diario" "Semanal" "Mensual" "Trimestral" "Semestral" "Anual"

Frecuencia con la que se desea sincronizar el documento

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "Recurrencia": "CadaHora"
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Eliminar subscripción

Permite eliminar una subscripción existente

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a subscribir al servicio

Responses

Request samples

curl --request DELETE \
  --url 'https://homo.api.datamart.pe/cpe-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Sincronizar CPEs

Permite iniciar la ejecución a demanda del servicio

Authorizations:
ApiKey
Request Body schema: application/json
CustomerID
required
string
RUCs
required
Arreglo de strings

Responses

Request samples

Content type
application/json
{
  • "CustomerID": "1L",
  • "RUCs": [
    ]
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null,
  • "Estado": {
    }
}

Cambiar recurrencia

Permite cambiar las recurrencias con que se sincronizan las subscripciones para un conjunto de estas

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

Request Body schema: application/json
Recurrencia
required
string
Default: "CadaHora"
Enum: "CadaHora" "Diario" "Semanal" "Mensual" "Trimestral" "Semestral" "Anual"

Frecuencia con la que se desea sincronizar el documento

SubscriptorIds
required
Arreglo de strings

Listado de RUC de empresas a suscritas al servicio

Responses

Request samples

Content type
application/json
{
  • "Recurrencia": "CadaHora",
  • "SubscriptorIds": [
    ]
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null,
  • "SolicitudId": "16e1af9f-1b32-4c8d-b8bc-d0701b76938b"
}

Verificar cambio de recurrencia

Permite verificar el estado en que se encuentra el proceso de cambiar la recurrencia

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

solicitud-id
required
any
Ejemplo: 2G

Identificador del proceso de cambiar la recurrencia

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/cpe-sync/v1/update-recurrence/{customer-id}/{solicitud-id}/status' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{}

Factrack

Servicio de sincronización de metadatos de la actividad registrada en el Registro Centralizado de Facturas Negociables (Factrack) administrado por Cavali. Periódicamente se verifica la actividad en Factrack para cada empresa subscrita al servicio y se notifican vía Webhook o por correo electrónico los metadatos de las nuevas cesiones encontradas.

Notificaciones
El servicio notifica de manera automática las nuevas cesiones registradas en Factrack. La notificación de nueva cesión incluye metadatos relativos a la cesión, al CPE cedido, datos de identificación del cedente y cesionario.
El siguiente modelo representa los datos enviados en la notificación.

SubscriberId
string

RUC Subscriptor

RUCProveedor
string

RUC Proveedor de la factura

RazonSocialProveedor
string

Razón social del RUC Proveedor de la factura

RUCAdquiriente
string

RUC que adquiere la factura

RazonSocialAdquiriente
string

Razón social del RUC que adquiere la factura

RUCParticipante
string

RUC Participante en la factura

RazonSocialParticipante
string

Razón social del RUC Participante en la factura

IdParticipante
string

Id Cavali

TipoCPE
string

Tipo de factura

TipoCPEDesc
string

Descripción del tipo de factura

Serie
string

Número de Serie de la factura

Folio
string

Folio de la factura

FechaEmisionCPE
string

Fecha de emisión de la factura

Moneda
string

Moneda de la factura

MontoNetoCPE
number <decimal>

Monto neto de la factura

ImporteNetoaPagar
number <decimal>

Monto de la cesión

FechaEntregaFacturaNegociable
string

Fecha en la que se negocia la factura

FechadeAnotacionenCuenta
string

Fecha en la que se registra la operación de cesión

CodigodeValor
string

Código entregado por Cavali

FechadePago
string

Fecha en la que se pagará la factura

Ambiente
string

Ambiente de trabajo

EnlaceXml
string

Documento xml de la cesión

EstadoCavali
string

Estado de la operación en Cavali

FechaEstado
string

Fecha en la que se establece el estado

TipoRegistro
any <string>

Tipo de registro dado por Cavali

IndicadorVenta
any <string>

Indicador de la venta

FechaRegistro
string

Fecha de registro de la cesión

RespuestaCPE
string

Respuesta de la factura

EstadoCPE
string

Estado la factura

EstadoConformidad
string

Estado de conformidad de la factura

TipoConformidad
string

Tipo de conformidad de la factura (CPE)

Condici\u00f3nConformidad
string

Condición de conformidad de la factura (CPE)

CondicionConformidad
string

Condición de conformidad de la factura (CPE)

FechaPago
string

Fecha en la que se pagará la factura

FechaPagoEfectiva
string

Fecha efectiva del pago

FechadeTransferenciaContable
string

Fecha en la que la factura se registra

MotivoRetiro
string

Aplica si se retira la cesión

Obs
string

Observaciones

GlosaDTE
string

Descripción de la factura

Extras
object

Datos adicionales enviados en la notificación

Servicio
string

Código del servicio que envía la notificación

Notificacion
string

Código de la notificación

{
  • "SubscriberId": "1B",
  • "RUCProveedor": "1-8",
  • "RazonSocialProveedor": "",
  • "RUCAdquiriente": "1-9",
  • "RazonSocialAdquiriente": "",
  • "RUCParticipante": "1A",
  • "RazonSocialParticipante": "",
  • "IdParticipante": "000",
  • "TipoCPE": "Factura comercial",
  • "TipoCPEDesc": "Factura comercial",
  • "Serie": "E001",
  • "Folio": "0000",
  • "FechaEmisionCPE": "2024-09-23T00:00:00",
  • "Moneda": "$",
  • "MontoNetoCPE": 33089.1,
  • "ImporteNetoaPagar": 33089.1,
  • "FechaEntregaFacturaNegociable": "2023-04-10T05:00:00+00:00",
  • "FechadeAnotacionenCuenta": "2023-04-10T23:31:08+00:00",
  • "CodigodeValor": "FN0004436043",
  • "FechadePago": "2023-04-28T00:00:00",
  • "Ambiente": "Prod/Homo",
  • "EstadoCavali": "Redimida / Anotada en Cuenta / Retirada / Registrada / Registro Sin información adicional",
  • "FechaEstado": "02/05/2023",
  • "TipoRegistro": "Electrónico",
  • "IndicadorVenta": "Crédito",
  • "FechaRegistro": "28/03/2023",
  • "RespuestaCPE": "Autorizada",
  • "EstadoCPE": "Aceptado",
  • "EstadoConformidad": "Conforme",
  • "TipoConformidad": "CPE con conformidad presunta",
  • "Condici\u00f3nConformidad": "Conformidad presunta dentro del plazo",
  • "CondicionConformidad": "Conformidad presunta dentro del plazo",
  • "FechaPago": "28/03/2023",
  • "FechaPagoEfectiva": "28/04/2023",
  • "FechadeTransferenciaContable": "10/04/2023",
  • "MotivoRetiro": "Explicación",
  • "Obs": "Observaciones",
  • "GlosaDTE": "TARIFA POR HORA DE VUELO [USD/HORA] | OTROS (USD).",
  • "Extras": null,
  • "Servicio": "FactrackSync",
  • "Notificacion": "FACTRACK_SINCRONIZADO"
}

Subscribir empresa

Permite subscribir una empresa al servicio Factrack

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a subscribir al servicio

Request Body schema: application/json
required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Actualizar subscripción

Permite actualizar la subscripción de una empresa en el servicio Factrack

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a subscribir al servicio

Request Body schema: application/json
required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Eliminar subscripción

Permite eliminar una subscripción al servicio Factrack

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a subscribir al servicio

Responses

Request samples

curl --request DELETE \
  --url 'https://homo.api.datamart.pe/factrack-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Inicio de servicio

Permite iniciar la ejecución del servicio Factrack

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a subscribir al servicio

Responses

Request samples

curl --request POST \
  --url 'https://homo.api.datamart.pe/factrack-sync/v1/synchronize/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Sentinel

Servicio para la descarga de información de morosidad, comportamiento de pago y riesgo registrada en Buerau de Crédito Sentinel.

Descarga de reporte

Descarga la información de morosidad, comportamiento de pago y riesgo registrada en Buerau de Crédito Sentinel.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 2G

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 1I

RUC empresa a encuestar deuda

query Parameters
update-data
bool
Ejemplo: update-data=false

Indica si se deben actualizar los datos de la deuda desde el servicio

pdf
bool
Ejemplo: pdf=false

Indica si se debe descargar el pdf desde el servicio.

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/sentinel/v1/debts/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{}

Eventos CPE

Servicio que permite registrar eventos de conformidad y disconformidad en comprobantes recibidos por una empresa, cumpliendo con las restricciones establecidas por la SUNAT para este proceso. Asimismo, ofrece la opción de consultar los eventos registrados para un comprobante.

Obtener eventos

Permite obtener, de manera síncrona, el historial de eventos registrados para un comprobante en la SUNAT, proporcionando detalles sobre cada evento asociado al comprobante.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
RucEmisor
required
string

Ruc emisor del comprobante

Tipo
required
string
Enum: "01" "02"

Tipo de comprobante

  • 01 - Factura
  • 02 - Recibo por honorarios
Serie
required
string

Serie del comprobante. Solo se permite E001 y F###.

Numero
required
integer

Número del comprobante

required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Responses

Request samples

Content type
application/json
{
  • "RucEmisor": "2A",
  • "Tipo": "01",
  • "Serie": "F004",
  • "Numero": 15,
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
Example

Comprobante con eventos

{
  • "Codigo": "0",
  • "Mensaje": null,
  • "EventosCpe": [
    ]
}

Obtener eventos asíncronamente

Permite obtener los eventos registrados de un comprobante en la SUNAT de forma asíncrona. Al recibir los datos necesarios para realizar la consulta, se devuelve un identificador único de solicitud. Posteriormente, se debe utilizar dicho identificador para consultar el estado de la solicitud a través de la API de verificación de estado.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
RucEmisor
required
string

Ruc emisor del comprobante

Tipo
required
string
Enum: "01" "02"

Tipo de comprobante

  • 01 - Factura
  • 02 - Recibo por honorarios
Serie
required
string

Serie del comprobante. Solo se permite E001 y F###.

Numero
required
integer

Número del comprobante

required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Responses

Request samples

Content type
application/json
{
  • "RucEmisor": "2A",
  • "Tipo": "01",
  • "Serie": "F004",
  • "Numero": 15,
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null,
  • "SolicitudId": "66587197-7137-4cdc-bb7b-1ce6acbfea5f"
}

Registrar eventos

Permite registrar eventos de conformidad o disconformidad en múltiples comprobantes recibidos por una empresa de forma asíncrona. Al recibir los datos necesarios para registrar los eventos, se devuelve un identificador único de solicitud. Posteriormente, se debe consultar el estado de dicha solicitud utilizando la API de verificación de estado.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
EstadoComprobantes
required
string
Enum: "Pendiente" "PendientePorReinicio" "Subsanado" "Disconforme"

Estado actual de los comprobantes para el registro de eventos. Se deben tener en cuenta las siguientes reglas:

  • Para comprobantes con estado Pendiente, se permite dar Conformidad o Disconformidad.
  • Para comprobantes con estado Subsanado, se permite Aceptar o No Aceptar.
  • Para comprobantes con estado Disconforme, se permite Subsanar o Atender.
required
Arreglo de objects

Comprobantes para el registro de eventos

required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Responses

Request samples

Content type
application/json
{
  • "EstadoComprobantes": "Pendiente",
  • "Comprobantes": [
    ],
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null,
  • "SolicitudId": "66587197-7137-4cdc-bb7b-1ce6acbfea5f"
}

Registrar sustento de disconformidad

Permite registrar, de manera síncrona, el sustento de disconformidad de comprobantes recibidos a través de la SUNAT. Esta operación solo es válida para comprobantes que se encuentran en estado Disconforme.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
Sustento
required
string

Documento de sustento de disconformidad en Base64. Solo está permitido cargar archivos de tipo pdf, doc, docx, xls, xlsx, ppt, pptx, jpg, jpeg o txt.

required
Arreglo de objects

Comprobantes para el registro del sustento de disconformidad.

required
object (CredencialesAutenticacion)

Credenciales de autenticación en la SUNAT

Responses

Request samples

Content type
application/json
{
  • "Sustento": "Ynl0ZVtdIGRlbCBYTUwgZGVsIERURSBhIGNlZGVyIGVuIEJhc2U2NA==",
  • "Comprobantes": [
    ],
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json

Registro de sustento de disconformidad

{
  • "Codigo": "0",
  • "Mensaje": null
}

Verificar estado de solicitud

Permite consultar el estado de una solicitud relacionada con la obtención o el registro de eventos en comprobantes. Proporciona información sobre el progreso o la finalización de la solicitud realizada previamente.

Authorizations:
(ApiKeyIdCliente)
path Parameters
solicitud-id
required
string
Ejemplo: 0e13bf35-ffa5-4f29-8266-db51828eae1d

Identificador único asignado al realizar una petición para obtener o registrar eventos.

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/cpe-events/v1/events/async/{solicitud-id}/status' \
  --header 'x-api-key: {API_KEY_CLIENTE}' \
  --header 'x-dmrt-customer-id: {ID_CLIENTE}'

Response samples

Content type
application/json
Example

Comprobante con eventos

{
  • "Codigo": "0",
  • "Mensaje": null,
  • "Estado": "Completado",
  • "EventosCpe": [
    ]
}

Deuda Coactiva

Servicio que sincroniza diariamente la existencia de deudas tributarias que el contribuyente no ha podido pagar.
Para una empresa subscrita al servicio, periódicamente y de forma automática se notifica vía webhook o por correo electrónico el reporte de deuda coactiva.

Notificaciones
Este servicio notifica de forma automática, vía webhook o por correo electrónico, el reporte de deuda coactiva de la empresa.
El siguiente modelo representa los datos enviados en la notificación.

SubscriberId
string

RUC de la empresa

RazonSocial
string

Razón social de la empresa

EnlaceXml
string

Enlace para descarga del fichero XML del documento

DeudasCoactiva
Arreglo de objetc (Deuda)
{}

Subscribir empresa

Permite subscribir una empresa al servicio DCASync

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

Responses

Request samples

curl --request POST \
  --url 'https://homo.api.datamart.pe/dca-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Actualizar subscripción

Permite actualizar la subscripción de una empresa al servicio DCASync

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

Responses

Request samples

curl --request PUT \
  --url 'https://homo.api.datamart.pe/dca-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Eliminar subscripción

Permite eliminar una subscripción al servicio DCASync

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

Responses

Request samples

curl --request DELETE \
  --url 'https://homo.api.datamart.pe/dca-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Sincronizar reporte

Permite iniciar la ejecución del servicio para descargar la deuda coactiva de una empresa

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa subscrita al servicio

Responses

Request samples

curl --request POST \
  --url 'https://homo.api.datamart.pe/dca-sync/v1/synchronizations/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Subscripciones

Servicio que permite verificar el estado de subscripción de una empresa a los servicios de Datamart e informar estado de credenciales de acceso.

Notificaciones
El servicio permite notificar en tiempo real determinados eventos que ocurren relacionados con las subscripciones.

El siguiente modelo representa los datos enviados para un Evento subscripción.

SuscriptorId
string <SuscriptorId>

Identificador del subscriptor

RazonSocial
string

Razón Social del Subscriptor

CodigoEvento
string
Enum: "SubscripcionCreada" "SubscripcionEliminada"

Código del evento

FechaEvento
string <YYYY-MM-DDThh:mm:ss>

Fecha en que ocurrió el evento

ServicioEvento
string

Servicio en que ocurrió el evento

Servicio
string
Valor: "Subscriptions"

Código del servicio que envía la notificación

Notificacion
string
Valor: "EVENTO_SUBSCRIPCION"

Código de la notificación

Extras
any

Datos adicionales enviados en la subscripción

{
  • "SuscriptorId": "1-9",
  • "RazonSocial": null,
  • "CodigoEvento": "SubscripcionCreada",
  • "FechaEvento": "2019-03-07T13:10:01",
  • "ServicioEvento": "RTTSync",
  • "Servicio": "Subscriptions",
  • "Notificacion": "EVENTO_SUBSCRIPCION",
  • "Extras": null
}

Estado subscripción

Consulta estado de subscripción y credenciales de acceso en un servicio

Authorizations:
ApiKey
path Parameters
cliente-id
required
string
Ejemplo: 1-9

Identificador del cliente en Datamart

subscriptor-id
required
string
Ejemplo: 1-8

Identificador de la empresa para chequear subscripción

servicio-id
required
string
Enum: "CPESync" "RTTSync" "Factrack" "BSHSync" "DCASync" "DECPAGOSSync" "AFPSync"
Ejemplo: CPESync

Identificador del servicio para chequear subscripción

  • CPESync - CPE Sync
  • RTTSync - Reporte Tributario para Terceros
  • Factrack - Factrack
  • BSHSync - Declaración de balance
  • DCASync - Deuda Coactiva
  • DECPAGOSSync - Declaraciones y pagos
  • AFPSync - AFP Sync
query Parameters
check-cred-status
boolean
Ejemplo: check-cred-status=false

Indica si se debe chequear estado de las credenciales de acceso o no

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/subscriptions/v1/check-subscription/{cliente-id}/{subscriptor-id}/{servicio-id}?check-cred-status=true' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
Example

Empresa no subscrita

{
  • "Codigo": "60",
  • "Mensaje": null,
  • "EstadoCredencial": "",
  • "Servicio": "AECSync"
}

Estado subscripciones

Consulta estado de subscripción y credenciales de acceso en varios servicios

Authorizations:
ApiKey
path Parameters
cliente-id
required
string
Ejemplo: 1-9

Identificador del cliente en Datamart

subscriptor-id
required
string
Ejemplo: 1-8

Identificador de la empresa para chequear subscripción

query Parameters
check-cred-status
boolean
Ejemplo: check-cred-status=false

Indica si se debe chequear estado de las credenciales de acceso o no

Request Body schema: application/json
Servicios
Arreglo de strings
Items Enum: "CPESync" "RTTSync" "Factrack" "BSHSync" "DCASync" "DECPAGOSSync" "AFPSync"

Responses

Request samples

Content type
application/json
{
  • "Servicios": [
    ]
}

Response samples

Content type
application/json

Respuesta satisfactoria

{
  • "Codigo": "0",
  • "Mensaje": null,
  • "EstadoSubscripcion": [
    ]
}

Consulta Ficha RUC

Servicio que brinda la posibilidad de obtención de la Ficha RUC en la SUNAT.

Notificaciones
Al finalizar la obtención de la Ficha RUC solicitada, se notifica de manera automática, vía Webhook o por correo electrónico, de acuerdo a la configuración del cliente.
El siguiente modelo representa los datos enviados en la notificación.

RUC
string <RUC>

RUC contribuyente

EnlaceJson
string <url>

Enlace para descarga del documento en formato JSON

EnlacePdf
string <url>

Enlace para descarga del documento en formato PDF

Enlace
string <url>

Enlace para descarga del compactado ZIP

Notificacion
string

Código de la notificación

Servicio
string

Código del servicio que envía la notificación

object (MapExtras)

Diccionario <llave, valor>

{}

Obtener Ficha RUC asíncronamente

Permite realizar una petición para obtener la Ficha RUC de un contribuyente de manera asíncrona.
La respuesta incluye un ID de solicitud que se debe utilizar para consultar el estado del proceso mediante la API, para verificar estado y obtener los datos.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
RucContribuyente
required
string

Ruc del contribuyente a consultar

required
object (CredencialesAutenticacionContribuyente)

Credenciales de autenticación a la SUNAT

object (MapExtras)

Diccionario <llave, valor>

Responses

Request samples

Content type
application/json
{
  • "RucContribuyente": 11111111111,
  • "CredencialesAutenticacion": {
    },
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json

Respuesta satisfactoria

{
  • "Codigo": "0",
  • "Mensaje": null,
  • "SolicitudId": "0e13bf35-ffa5-4f29-8266-db51828aee1d"
}

Verificar solicitud

Permite verificar el estado de una solicitud de obtención de datos de una Ficha RUC.

Authorizations:
(ApiKeyIdCliente)
path Parameters
solicitud-id
required
string
Ejemplo: 0e13bf35-ffa5-4f29-8266-db51828eae1d

Identificador de solicitud recibido al realizar una petición de obtención de datos de una Ficha RUC

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/ruc-folder/v1/requests/async/{solicitud-id}/status' \
  --header 'x-api-key: {API_KEY_CLIENTE}' \
  --header 'x-dmrt-customer-id: {ID_CLIENTE}'

Response samples

Content type
application/json

Respuesta satisfactoria

{}

Sincronizar

Realiza el proceso de suscripción y sincroniza la Ficha RUC de un contribuyente.

Authorizations:
(ApiKeyIdCliente)
header Parameters
x-api-key
required
string
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-customer-id
required
string
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
SubscriptorId
string

Identificador del suscriptor

ModoAcceso
string
Default: "Simple"
Enum: "Simple" "Recurrente"

'Modo de acceso'

  • Simple - Permite obtener la Ficha RUC en una ocasión. Es requerido enviar las credenciales.
  • Recurrente - Permite crear o actualizar la suscripción de un contribuyente y obtener la Ficha RUC.
Recurrencia
string
Default: "BajoDemanda"
Valor: "BajoDemanda"

'Tipo de Recurrencia en caso de que el ModoAcceso sea Recurrente'

  • BajoDemanda - Permite obtener la Ficha RUC de un contribuyente suscrito al servicio. Si envía las credenciales se crea o actualiza la suscripción y se obtiene la Ficha RUC. Si no envía las credenciales obtiene la Ficha RUC de un contribuyente si está suscrito al servicio.
object (CredencialesAutenticacionContribuyenteOpcional)

Credenciales de autenticación a la SUNAT. No se requiere su envío para la sincronización de un RUC ya suscrito al servicio.

object (MapExtras)

Diccionario <llave, valor>

Responses

Request samples

Content type
application/json
{
  • "SubscriptorId": "1-0",
  • "ModoAcceso": "Recurrente",
  • "Recurrencia": "BajoDemanda",
  • "CredencialesAutenticacion": {
    },
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json

Respuesta satisfactoria

{
  • "Codigo": "0",
  • "Mensaje": null,
  • "SolicitudId": "61213001-6b6d-45be-9542-4bc0fdc07557"
}

Actualizar suscripción

Realiza el proceso de actualizar un suscripción y sincroniza la Ficha RUC de un contribuyente.

Authorizations:
(ApiKeyIdCliente)
header Parameters
x-api-key
required
string
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-customer-id
required
string
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
SubscriptorId
string

Identificador del suscriptor

ModoAcceso
string
Default: "Simple"
Enum: "Simple" "Recurrente"

'Modo de acceso'

  • Simple - Permite obtener la Ficha RUC en una ocasión. Es requerido enviar las credenciales.
  • Recurrente - Permite crear o actualizar la suscripción de un contribuyente y obtener la Ficha RUC.
Recurrencia
string
Default: "BajoDemanda"
Valor: "BajoDemanda"

'Tipo de Recurrencia en caso de que el ModoAcceso sea Recurrente'

  • BajoDemanda - Permite obtener la Ficha RUC de un contribuyente suscrito al servicio. Si envía las credenciales se crea o actualiza la suscripción y se obtiene la Ficha RUC. Si no envía las credenciales obtiene la Ficha RUC de un contribuyente si está suscrito al servicio.
object (CredencialesAutenticacionContribuyenteOpcional)

Credenciales de autenticación a la SUNAT. No se requiere su envío para la sincronización de un RUC ya suscrito al servicio.

object (MapExtras)

Diccionario <llave, valor>

Responses

Request samples

Content type
application/json
{
  • "SubscriptorId": "1-0",
  • "ModoAcceso": "Recurrente",
  • "Recurrencia": "BajoDemanda",
  • "CredencialesAutenticacion": {
    },
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json

Respuesta satisfactoria

{
  • "Codigo": "0",
  • "Mensaje": null,
  • "SolicitudId": "61213001-6b6d-45be-9542-4bc0fdc07557"
}

Eliminar suscripción

Permite eliminar la suscripción de un contribuyente.

Authorizations:
(ApiKeyIdCliente)
path Parameters
subscriptor-id
required
string

Identificador del suscriptor

header Parameters
x-api-key
required
string
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-customer-id
required
string
Ejemplo: 1-0

Identificador del cliente

Responses

Request samples

curl --request DELETE \
  --url 'https://homo.api.datamart.pe/ruc-folder/v1/synchronizations/{subscriptor-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}' \
  --header 'x-dmrt-customer-id: {ID_CLIENTE}'

Response samples

Content type
application/json

Respuesta satisfactoria

{
  • "Codigo": "0",
  • "Mensaje": ""
}

Verificar estado de la sincronización

Permite verificar el estado de la solicitud de sincronización.

Authorizations:
ApiKey
path Parameters
solicitud-id
required
string

Identificador de la solicitud

header Parameters
x-api-key
required
string
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

x-dmrt-customer-id
required
string
Ejemplo: 1-0

Identificador del cliente

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/ruc-folder/v1/synchronizations/async/{solicitud-id}/status' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json

Respuesta satisfactoria

{}

Servicio Cesión CPE

Servicio para gestionar las cesiones a través de Cavali y Factrack.
Para una empresa suscrita al servicio, periódicamente y de forma automática se notifica vía Webhook o por correo electrónico cuando se complete el proceso de cesión iniciado.

Notificaciones
Este servicio notifica de forma automática, vía Webhook o por correo electrónico, cuando se complete el proceso de cesión iniciado.
El siguiente modelo representa los datos enviados en la notificación.

Ruc
integer

RUC proveedor

Serie
string

Número de serie

Numeracion
string

Numeración de Factura

Tipo
string
Enum: "Anotar" "Registrar" "Transferir"

Tipo de operación

Fecha
string <yyyy-MM-ddTHH:mm>

Fecha de la notificación

Codigo
string
Enum: "CESSION_SUCCESS" "CESSION_REMOVED" "REDEEM_INVOICE" "RESCHEDULE_PAYMENT" "ERROR"

Tipo de notificación

  • CESSION_SUCCESS - Cesión exitosa
  • CESSION_REMOVED - Cesión eliminada
  • REDEEM_INVOICE - Factura pagada
  • RESCHEDULE_PAYMENT - Pago reprogramado
  • ERROR - Error
{
  • "Ruc": 123456789101112,
  • "Serie": "E001",
  • "Numeracion": "57",
  • "Tipo": "01",
  • "Fecha": "2020-08-10T12:12:12:12",
  • "Codigo": "CESSION_SUCCESS"
}

Consultar cesión

Permite consultar el estado de una cesión.

Authorizations:
(ApiKeyIdCliente)

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/cession-cpe/v1/status/{cessionId}' \
  --header 'x-api-key: {API_KEY_CLIENTE}' \
  --header 'x-dmrt-customer-id: {ID_CLIENTE}'

Response samples

Content type
application/json

Respuesta satisfactoria

{
  • "Codigo": "0",
  • "Mensaje": null,
  • "Proceso": {
    }
}

Iniciar servicio

Permite iniciar un proceso de cesión de CPE.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
RucProveedor
required
integer

RUC de la empresa proveedora

Tipo
required
string
Enum: "01" "02"

Tipo de comprobante

  • 01 - Factura comercial
  • 02 - Recibo por honorarios
Serie
required
string

Número de serie

Numeracion
required
string

Numeración de factura

NombreArchivo
required
string

Nombre de archivo XML

ArchivoXml
required
string

Base 64 del archivo XML

FechaVencimiento
required
string <DD/MM/YYYY>

Fecha de expiración del documento

DepartamentoProveedor
required
string [ 1 .. 2 ] characters

Código del departamento de empresa proveedora

ProvinciaProveedor
required
string [ 1 .. 2 ] characters

Código de la provincia de empresa proveedora

DistritoProveedor
required
string [ 1 .. 2 ] characters

Código del distrito de empresa proveedora

DireccionProveedor
required
string

Domicilio Proveedor

DepartamentoAcq
required
string [ 1 .. 2 ] characters

Departamento de empresa adquirente

ProvinciaAcq
required
string [ 1 .. 2 ] characters

Provincia de empresa adquirente

DistritoAcq
required
string [ 1 .. 2 ] characters

Distrito de empresa adquirente

DireccionAcq
required
string

Domicilio de empresa adquirente

RucAcq
required
integer

RUC de empresa aquiriente

TipoPago
required
integer
Enum: "1" "2"

Tipo de pago

  •    1 - Pago único
  •    2 - Pago en Cuotas
FechaPago
required
string <DD/MM/YYYY>

Fecha de pago (del importe neto pendiente de pago)

MontoNeto
required
number

Monto neto pendiente de pago

RznSocialAcq
string

Nombre de empresa adquiriente

RznSocialProveedor
string

Nombre empresa proveedora

RucParticipante
integer

RUC empresa participante

RznParticipante
string

Nombre empresa participante

EmailAcq
string

Email empresa adquirente

TipoIngreso
integer
Default: 1
Enum: "1" "2"

Tipo de ingreso

  •    1 - Registro
  •    2 - Anotación en cuenta
PeriodoConsultaCavali
integer
Default: 12

Período de consulta

Responses

Request samples

Content type
application/json
{
  • "RucProveedor": 123456789101112,
  • "Tipo": "01",
  • "Serie": "E001",
  • "Numeracion": "57",
  • "NombreArchivo": "E001-01-57.xml",
  • "ArchivoXml": "Xml en base 64",
  • "FechaVencimiento": "20/09/2020",
  • "DepartamentoProveedor": "01",
  • "ProvinciaProveedor": "01",
  • "DistritoProveedor": "01",
  • "DireccionProveedor": "Ave Prueba 123",
  • "DepartamentoAcq": "01",
  • "ProvinciaAcq": "01",
  • "DistritoAcq": "01",
  • "DireccionAcq": "Ave Prueba 123",
  • "RucAcq": 123456789101112,
  • "TipoPago": 0,
  • "FechaPago": "20/09/2020",
  • "MontoNeto": 123.55,
  • "RznSocialAcq": "E001",
  • "RznSocialProveedor": "Empresa ejemplo",
  • "RucParticipante": 123456789101112,
  • "RznParticipante": "Empresa prueba",
  • "EmailAcq": "email@prueba.com",
  • "TipoIngreso": "1",
  • "PeriodoConsultaCavali": 12
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null,
  • "IdCesion": "123456789-1234567-01-E001-1-20210326050546"
}

Pagar factura

Permite ejecutar el pago de una factura.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
RucProveedor
required
integer

RUC de la empresa proveedora

Tipo
required
string
Enum: "01" "02"

Tipo de comprobante

  • 01 - Factura comercial
  • 02 - Recibo por honorarios
Serie
required
string

Número de serie

Numeracion
required
string

Numeración de factura

object

Detalles del pago

Responses

Request samples

Content type
application/json
{
  • "RucProveedor": 123456789101112,
  • "Tipo": "01",
  • "Serie": "E001",
  • "Numeracion": "57",
  • "DetallePago": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Reprogramar pago

Permite reprogramar un pago.

Authorizations:
(ApiKeyIdCliente)
Request Body schema: application/json
RucProveedor
required
integer

RUC de la empresa proveedora

Tipo
required
string
Enum: "01" "02"

Tipo de comprobante

  • 01 - Factura comercial
  • 02 - Recibo por honorarios
Serie
required
string

Número de serie

Numeracion
required
string

Numeración de factura

FechaVencimiento
string <DD/MM/YYYY>

Fecha de expiración del documento

Arreglo de objects (QuotaDetail)

Detalles de las cuotas

Responses

Request samples

Content type
application/json
{
  • "RucProveedor": 123456789101112,
  • "Tipo": "01",
  • "Serie": "E001",
  • "Numeracion": "57",
  • "FechaVencimiento": "20/09/2020",
  • "detalleCuota": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Declaraciones y pagos

Servicio que recupera las Declaraciones y pagos registrados en SUNAT, enviados a través del sistema PDT.
Para una empresa subscrita al servicio, periódicamente y de forma automática se notifica vía webhook o por correo electrónico el reporte de la declaración y pago actualizado.

Notificaciones
Este servicio notifica de forma automática, vía webhook o por correo electrónico, la declaración y pago actualizado de la empresa.
El siguiente modelo representa los datos enviados en la notificación.

SubscriberId
string

RUC de la empresa

EnlaceXml
string <url>

Enlace para descarga del documento XML de la declaración y pago

EnlaceJson
string <url>

Enlace para descarga del documento JSON de la declaración y pago

EnlacePdf
string <url>

Enlace para descarga del Pdf de la declaración y pago para un período

Message
string

Mensaje de la notificación

Period
string <yyyymm>

Período de la declaración

FchPresentacion
string <YYYYMMDDhhmmss>

Fecha de presentación de la declaración

Subscribir empresa

Permite subscribir una empresa al servicio DECPAGOSSync.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Request Body schema: application/json
required
object (CredencialesDECPAGOS)

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Actualizar subscripción

Permite actualizar la subscripción de una empresa al servicio DECPAGOSSync.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Request Body schema: application/json
required
object (CredencialesDECPAGOS)

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "codigo": "0",
  • "Mensaje": "Subscripción actualizada"
}

Eliminar subscripción

Permite eliminar una subscripción al servicio DECPAGOSSync.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Responses

Request samples

curl --request DELETE \
  --url 'https://homo.api.datamart.pe/decpagos-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": "Subscripción eliminada"
}

Sincronizar reporte

Permite iniciar la ejecución del servicio para actualizar el reporte de declaraciones y pagos de una empresa subscrita.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa subscrita al servicio

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Responses

Request samples

curl --request POST \
  --url 'https://homo.api.datamart.pe/decpagos-sync/v1/synchronizations/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "codigo": "0",
  • "Mensaje": "Proceso de sincronizacion iniciado."
}

Descargar documento

Permite obtener el documento con los datos de la información obtenida de la declaración y pagos de una empresa.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC empresa subscrita al servicio

query Parameters
format
string
Enum: "json" "xml" "pdf"
Ejemplo: format=json

Indica el formato del documento a descargar, puediendo ser json, xml o pdf. Por defecto es json

period
string <yyyymm>
Ejemplo: period=202305

Período a consultar en formato yyyymm

generation-date
string <YYYYMMDDhhmmss>
Ejemplo: generation-date=20230608053810

Fecha de generación del documento en formato YYYYMMDDhhmmss

output
string
Enum: "file" "inline"

Indica la salida de los datos, en el cuerpo de la respuesta o un enlace a un archivo externo. Su valor por defecto es file y solo se permite inline si format=json

header Parameters
x-api-key
required
text
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Responses

Request samples

curl --request GET \
  --url 'https://homo.api.datamart.pe/decpagos-sync/v1/documents/{customer-id}/{subscriber-id}?format=SOME_STRING_VALUE&period=SOME_STRING_VALUE&generation-date=SOME_STRING_VALUE&output=SOME_STRING_VALUE' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
Example
{}

Declaración de Balance

Servicio que recupera los Balances financieros registrados en SUNAT, enviados a través del sistema PDT.
Para una empresa subscrita al servicio, periódicamente y de forma automática se notifica vía webhook o por correo electrónico el reporte del balance financiero actualizado.

Notificaciones
Este servicio notifica de forma automática, vía webhook o por correo electrónico, el balance financiero actualizado de la empresa.
El siguiente modelo representa los datos enviados en la notificación.

Servicio
string

Código del servicio que envía la notificación

CustomerCode
string

Identificador del cliente

SubscriberId
string

RUC de la empresa

FechaGeneracion
string <DD/MM/YYYY>

Fecha de generación del documento

EnlaceXml
string <url>

Enlace para descarga del documento XML del balance financiero

EnlaceJson
string <url>

Enlace para descarga del documento JSON del balance financiero

EnlacePdf
string <url>

Enlace para descarga del documento PDF del balance financiero

EnlaceZip
string <url>

Enlace para descarga del compactado ZIP del balance financiero

Ejercicio
string

Año/Mes de la fecha en que se obtiene el documento. En el caso del reporte 0710 se genera anual y el 0621 se genera mensual

FechaPresentacion
string <DD/MM/YYYY>

Fecha de última actualización

FormType
string

Tipo de formulario

Message
string

Mensaje de la notificación

NroOrden
string

Número de orden

MetodoObtencion
string

Indica el método utilizado para obtener el balance financiero

Notificacion
string

Código de la notificación

Extras
object

Datos adicionales enviados en la notificación

{}

Subscribir empresa

Permite subscribir una empresa al servicio BSHSync.

Authorizations:
ApiKey
path Parameters
subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

header Parameters
x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

x-api-key
required
text
Ejemplo: GufJM3ZlR468Y27zp3TnD5mm4Yay780k2W9OnoYG

ApiKey del cliente

Request Body schema: application/json
required
object (NuevasCredencialesBSH)
VigenciaSubscripcion
string

Estado de la subscripción

ExtrasNotificacion
object

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "VigenciaSubscripcion": "Indefinida",
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Actualizar subscripción

Permite actualizar la subscripción de una empresa al servicio BSHSync.

Authorizations:
ApiKey
path Parameters
subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

header Parameters
x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Request Body schema: application/json
object (CredencialesBSH)

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Eliminar subscripción

Permite eliminar una subscripción al servicio BSHSync.

Authorizations:
ApiKey
path Parameters
subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

header Parameters
x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Responses

Request samples

curl --request DELETE \
  --url 'https://homo.api.datamart.pe/bsh-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Sincronizar reporte

Permite iniciar la ejecución del servicio para actualizar el reporte de declaración de balance de la empresa.

Authorizations:
ApiKey
path Parameters
subscriber-id
required
any
Ejemplo: 2B

RUC empresa a subscribir al servicio

header Parameters
x-dmrt-customer-id
required
any
Ejemplo: 1-0

Identificador del cliente

Responses

Request samples

curl --request POST \
  --url 'https://homo.api.datamart.pe/bsh-sync/v1/synchronize/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Reporte Tributario para Terceros

Servicio que permite obtener el Reporte Tributario (RT) de un contribuyente desde la SUNAT.
Para un contribuyente subscrito al servicio, periódicamente y de forma automática se notifica vía webhook o por correo electrónico el reporte tributario actualizado.

Notificaciones
Este servicio notifica de forma automática, vía webhook o por correo electrónico, el reporte tributario actualizado del contribuyente.
El siguiente modelo representa los datos enviados en la notificación.

SubscriberId
string

RUC del contribuyente

RazonSocial
string

Razón social del contribuyente

EnlaceXml
string <url>

Enlace para descarga del documento XML del reporte tributario

EnlacePdf
string <url>

Enlace para descarga del documento PDF del reporte tributario

EnlaceJson
string <url>

Enlace para descarga del documento JSON del reporte tributario

Subscribir contribuyente

Permite subscribir un contribuyente al servicio RTT.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC contribuyente subscrito al servicio

header Parameters
x-api-key
required
string
Ejemplo: AbhCM24Zz123Y22aa5TTbnn55Yay700a5Y5Oo00

ApiKey del cliente

Request Body schema: application/json
required
object (CredencialesRTT)
object (Map)

Diccionario <llave, valor>

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    },
  • "ExtrasNotificacion": null
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Actualizar subscripción

Permite actualizar la subscripción de un contribuyente al servicio RTT.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC contribuyente subscrito al servicio

Request Body schema: application/json
required
object (CredencialesRTT)

Responses

Request samples

Content type
application/json
{
  • "CredencialesAutenticacion": {
    }
}

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Eliminar subscripción

Permite eliminar una subscripción de un contribuyente al servicio RTT.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC contribuyente subscrito al servicio

Responses

Request samples

curl --request DELETE \
  --url 'https://homo.api.datamart.pe/rtt-sync/v1/subscriptions/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}

Sincronizar reporte

Permite iniciar la ejecución del servicio para actualizar el reporte tributario de un contribuyente subscrito.

Authorizations:
ApiKey
path Parameters
customer-id
required
any
Ejemplo: 1I

Identificador del cliente en Datamart

subscriber-id
required
any
Ejemplo: 2B

RUC contribuyente subscrito al servicio

Responses

Request samples

curl --request POST \
  --url 'https://homo.api.datamart.pe/rtt-sync/v1/synchronize/{customer-id}/{subscriber-id}' \
  --header 'x-api-key: {API_KEY_CLIENTE}'

Response samples

Content type
application/json
{
  • "Codigo": "0",
  • "Mensaje": null
}