endUser POST
La creación de un nuevo usuario para una persona natural empieza con la llamada POST en la
que se consume un endpoint para el envío de los datos básicos del usuario:
{
"email": "string",
"firstName": "string",
"lastName": "string",
“occupation”: “string",
“placeofwork”: “string”,
“pep” : “bool”,
“salary” : “integer”,
“telephone” : “string”,
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
}
}
Cabe destacar que la responsabilidad de validar la veracidad y formato de los datos
ingresados recae sobre el cliente de PayCaddy, es decir, nuestra API devolverá una respuesta
exitosa siempre y cuando se cumplan los siguientes parámetros, independiente de la veracidad
de la información o la duplicidad de los datos compartidos:
- Los campos de
First Name
y Last Name
deben sumar un total
máximo de 22 caracteres que
deben ser enviados de forma sanitizada, eliminando caracteres especiales y limitándose
al rango ASCII.
- Ninguno de los campos debe ser enviado como
NULL
.
- El campo de correo debe seguir un formato estándar de correo.
Aparte de las verificaciones de formato, es importante destacar la responsabilidad del
cliente de enviar consistentemente los demás campos con información correcta:
- El campo de
salary
debe incluir el salario mensual del usuario en USD.
- El campo de
pep
indica si la persona natural para la cual se está creando
el usuario está políticamente expuesta.
PEP
Alguien a quien se le ha confiado una responsabilidad pública prominente.
Por lo general, una PEP
presenta un mayor riesgo de participación potencial en
sobornos y corrupción en virtud de su posición y la influencia que pueda tener.
El control sobre la duplicidad de usuarios debe ser manejado por parte del cliente de
PayCaddy, nuestra API generará múltiples userIds distintos independiente de que los datos
compartidos sean idénticos en llamadas duplicadas.
Si este evento no genera errores, el sistema responderá con un mensaje
HTTP 200 OK
. La respuesta exitosa replica los datos ingresados y añade
información sobre los parámetros isActive
y el walletId
inicial
asociado al userId
, además carga un timestamp de la fecha de creación de dicho
usuario.
{
"id": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
“telephone” : "string",
“placeofwork”: "string",
“pep” : true,
“salary” : 0,
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string",
},
“isActive” : false,
“walletId” : "string",
“kycUrl” : "string",
“CreationDate” : "2022-07-13T21:07:21.166Z"
}
De existir algún error el sistema responderá con uno de los siguientes mensaje de
error 400
:
Campos vacíos:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-68857a5c83b83b498f4c49d8a61d91cb-1a140dcbf259a24d-00",
“errors” : {
"FirstName": [,
"The FirstName field is required."
]
}
}
Límite de caracteres:
{
"type": "",
"title": "The value provided for the name exceeds the maximum value",
"status": 0,
"detail": "",
“instance” : ""
}
Formato de email:
{
"type": "",
"title": "Invalid format for email",
"status": 0,
"detail": "",
“instance” : ""
}
Algunos errores del sistema pudieran resultar en un mensaje de error 500
. En
estos casos, se solicita que el cliente haga un reporte via correo al equipo de PayCaddy.
Validación de KYC
Una vez asignados el identificador de usuario y de wallet, al end-user
debe
realizar la
verificación KYC para poder completar con el procedimiento de crear el perfil con la
verificación del usuario. Mientras esta verificación no se realice, el campo de control
“isActive” se mantendrá asignado como false, inhabilitando cualquier procedimiento.
En la respuesta de creación de usuario EndUser POST
se presenta un link hacia la
validación
de identidad asociada al userId en Metamap, en el cual se le presentarán las instrucciones y
pasos a seguir para que el endUser pueda completar con la verificación.
{
"id": "string",
"firstName": "string",
"lastName": "string",
"email": "string",
“telephone” : "string",
“placeofwork”: "string",
“pep” : true,
“salary” : 0,
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
“isActive” : false,
“walletId” : "string",
“kycUrl” : "https%3a%2f%2fsignup.getmati.com%2f%3fmerchantToken%3d6046cc2a54816f001bedd641%26flowId%3d6046cc2a54816f001bedd640%26metadata%3d%7b%22userid%22%3a%226955ea0f-34f3-4254-b10a-0181f307298c%22%7d",
“CreationDate” : "2022-07-12T15:29:01.8271862+00:00"
}
Es importante considerar que el kycURL es compartido aplicando un URL encoding que permite el
envío de la metadata (userId) que vincula la validación con el usuario creado. Para
garantizar la activación del usuario al completar la validación de forma exitosa, es
necesario asegurarse que el URL al que se redirige el usuario desde la interfaz en front end
carga la siguiente estructura:
Una vez completados los pasos de validación de identidad en la URL compartida en el campo
kycURL, el sistema de validación de Metamap procesa los datos enviados y lo compara con
listas negras y listas de AML y envía notificaciones sobre la validación via webhook.
Para recibir correctamente las notificaciones de validaciones hechas en Metamap, es necesario
mantener una URL para la recepción de mensajes desde el NeoBank API via webhook, debes
entrar en contacto con el equipo de integración de PayCaddy para la configuración del envío
de notificaciones a dicha URL.
Las notificaciones se envían de acuerdo a la siguiente estructura:
Datos enviados: La recepción de este webhook indica que el usuario ha completado
exitosamente el envío de datos. Es importante destacar que esto no significa que la
validación haya sido exitosa. Una segunda notificación se envía via webhook indicando el
status de la validación
{
"metadata": {,
"userid": "2c6ad273-fbd3-44e0-9a05-018190eec785"
},
"eventName": "verification_inputs_completed",
“timestamp” : "2022-06-23T14:27:55.979Z"
}
Validación Exitosa: Luego de completados los datos, si la validación ocurre
exitosamente, se envía una notificación via webhook al mismo URL con el siguiente esquema. A
partir de este punto el usuario se encuentra validado y listo para operar los siguientes
flujos. El campo isActive para dicho usuario se convierte en true.
{
"metadata": {,
"userid": "bccd97f9-fcb2-42d0-b244-01811c26997a"
},
"status": "Verification expired"
}
A partir de este momento, es útil reiterar las instrucciones de subida de datos para la
validación y proporcionar nuevamente un botón con el kycUrl relacionado al userId para un
reintento de validación.
Validación Manual: En caso que el segundo intento de validación haya fallado, se hace
necesaria una validación manual de los datos ingresados. El cliente debe entrar en contacto
con el equipo de cumplimiento de PayCaddy detallando el caso incluyendo Nombre, Apellido y
userId para dicho usuario. De ser aprobada la revisión de los datos, la activación se hará
manualmente y una notificación se enviará via webhook con la siguiente estructura:
{
"metadata": {,
"userid": "bccd97f9-fcb2-42d0-b244-01811c26997a"
},
"status": "reviewNeeded"
}
Esta notificación garantiza que la revisión manual ha sido exitosa y el usuario se encuentra
activo. El campo isActive para dicho usuario se convierte en true. A partir de este punto el
usuario se encuentra validado y listo para operar los siguientes flujos.
merchantUser POST
La creación de un nuevo usuario para una persona jurídica empieza con la llamada POST en la
que se consume un endpoint para el envío de los datos básicos de la persona jurídica:
{
"email": "string",
"registeredName": "string",
"numOfRegistration": "string",
"ruc": "string",
“KindOfBusiness” : "string",
“telephone”: "string",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
}
}
Cabe destacar que la responsabilidad de validar la veracidad y formato de los datos
ingresados recae sobre el cliente de PayCaddy, es decir, nuestra API devolverá una respuesta
exitosa siempre y cuando se cumplan los siguientes parámetros, independiente de la veracidad
de la información o la duplicidad de los datos compartidos:
- El campo de registeredName debe contener un total máximo de 22 caracteres que deben ser
enviados de forma sanitizada, eliminando caracteres especiales y limitándose al rango
ASCII.
- Ninguno de los campos debe ser enviado como
NULL
.
- El campo de correo debe seguir un formato estándar de correo.
Aparte de las verificaciones de formato, es importante destacar la responsabilidad del
cliente de enviar consistentemente los demás campos con información correcta:
- El campo de “ruc” debe incluir el número del Registro Único de Contribuyentes o su
contraparte internacional para la identificación tributaria como VATIN, CUIT, CNPJ, NIT
o RUT.
- El campo de “numOfRegistration” debe incluir el folio del registro de la persona
jurídica tal como determinado por la institución. Dicho campo puede replicar los datos
del “ruc” en caso de no tener disponible la información.
- El campo de “kindOfBusiness” debe ingresar una descripción acotada de la actividad
económica desempeñada por la persona jurídica. El NeoBank API no valida el detalle de la
información brindada en este campo, sin embargo es crucial asegurar el envío de
información fidedigna ya que la misma será utilizada por el equipo de cumplimiento en la
evaluación del usuario.
El control sobre la duplicidad de usuarios debe ser manejado por parte del cliente de
PayCaddy, nuestra API generará múltiples userIds distintos independiente de que los datos
compartidos sean idénticos en llamadas duplicadas.
Si este evento no genera errores, el sistema responderá con un mensaje HTTP 200 OK. La
respuesta exitosa replica los datos ingresados y añade información sobre los parámetros
isActive y el walletId inicial asociado al userId, además carga un timestamp de la fecha de
creación de dicho usuario.
{
"id": "string",
"email": "string",
"registeredName": "string",
"numOfRegistration": "string",
“ruc” : "string",
“kindOfBusiness”: "string",
“telephone” : "string",
"address": {
"addressLine1": "string",
"addressLine2": "string",
"city": "string",
"region": "string",
"postalCode": "string",
"country": "string"
},
“isActive” : true,
“walletId” : "string",
“CreationDate” : "2022-07-18T22:29:45.914Z"
}
De existir algún error el sistema responderá con uno de los siguientes mensaje de error 400:
Campos vacíos:
{
"type": "https://tools.ietf.org/html/rfc7231#section-6.5.1",
"title": "One or more validation errors occurred.",
"status": 400,
"traceId": "00-68857a5c83b83b498f4c49d8a61d91cb-1a140dcbf259a24d-00",
“errors” : {
"registreredName": [,
"The registeredName field is required."
]
}
}
Límite de caracteres:
{
"type": "",
"title": "The value provided for the name exceeds the maximum value",
"status": 0,
"detail": "",
“instance” : ""
}
Formato de email:
{
"type": "",
"title": "Invalid format for email",
"status": 0,
"detail": "",
“instance” : ""
}
Algunos errores del sistema pudieran resultar en un mensaje de error 500
. En
estos casos, se solicita que el cliente haga un reporte via correo al equipo de PayCaddy.
Validación de KYC
A diferencia de los usuarios creados por personas naturales (endUser), las personas jurídicas
al crear un merchantUser asociado obtienen su cuenta activa por defecto, es decir, desde la
respuesta exitosa del API ante un llamado de creación de merchantUser, el userId asociado al
merchant se encontrará en status “active” por un período temporal y tendrá a su disposición
todos los flujos habilitados.
Como parte del proceso estándar del equipo de cumplimiento de PayCaddy, todos los usuarios de
tipo merchantUser
son revisados en un lapso de 48 horas luego de lo cual, de
encontrarse alguna inconsistencia con la información brindada, la cuenta es bloqueada
manualmente y los motivos se informan via correo al cliente de PayCaddy.