Introducción
WEB SERVICE DE FIRMA VIRTUAL (API REST)
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@****#@@@@@@@@@@@@@@@@@@@@@@@@@@@%////@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@&***********@@@@@@@@@@@@@@@@@@@@@///////////@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@*****************@@@@@@@@@@@@@@@/////////////////@@@@@@@@@@@@@@@
@@@@@@@@@@@@@&////////////////*****@@@@@@@@@@@/////////////////////@@@@@@@@@@@@@
@@@@@@@@@@@///////////////////////////@@@@@///////////////////////////@@@@@@@@@@
@@@@@@@@@///////////////////////////////@///////////////////////////////@@@@@@@@
@@@@@@/////////////////////////////////%%%(////////////////////////////////@@@@@
@@@@((((((((((((((//////////////////%%%%%%%%%////////////////////////////////@@@
@(((((((((((((((((((((((((((((((/(%%%%%%%%%%%%%(////////////////////////////////
(((((((((((((((((((((((((((((((%%%%%%%%%%%%%%%%%%%//////////////////////////////
(((((((((((((((((((((((((((((%%%%%%%%%%%%%%%%%%%%%%%(///////////////////////////
##((((((((((((((((((((((((%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/////////////////////////
################(((((((#%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%////////////////////////
#####################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(//////////////////////////
###################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/////////////////////////////
################%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(///////////////////////////////
@@%###########%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%////////////////////////////////(@
@@@@@######%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(////////////////////////////////@@@@
@@@@@@@##%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%////////////////////////////////(@@@@@@
@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(////////////////////////////@@@@@@@@@
@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%///////////////////////(@@@@@@@@@@@
@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(//////////////////@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@&%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%/////////////(@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%(////////@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%///(@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@&%%%%%%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%%%%%%%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Los Servicios Web de Firma Virtual, o WSFV para abreviar, es un conjunto de servicios web que permiten a los clientes interactuar con Firma Virtual para realizar operaciones tales como: registrarse en el sistema, iniciar sesion, crear contratos, gestionar documentos, firmar contratos con Firma Electornica Simple y pagar contratos o administrarlo. Nuestro WSFV esta orientado para todos aquellos clientes que quieran automatizar la firma de documentos con protocolización o certificación notarial según los servicios que disponga nuestra empresa.
Para usar esta API necesitas un Token Bearer que se obtiene luego de la autenticación que se realiza previamente en nuestro sistema de registro. Para más información, contactarse con: jose@firmavirtual.legal
Flujo de Proceso:
A continuación se describe el flujo del proceso completo para el registro de un usuario, creación del contrato, obtener firma electrónica simple y certificar o protocolizar un documento.
Consideraciones
- Este servicio tiene un límite de request para el envío de correos electrónicos a los participantes.
- La notificación de entrega, revisión, pago y finalización de documentos se realiza vía correo electrónico.
- Solo se puede crear máximo de 10 participantes por contrato.
- Este servicio tiene un límite de request para la cantidad de archivos que se pueden unificar.
- El peso máximo por archivo PDF a subir es de 50MB en modo QA.
- La pasarela de pago que esta integrado a nuestro sistema actualmente es el ambiente en de prueba de webpay plus, los datos de las tarjeta de testing estan en la documentacion de transbank. ref: Transbank
- Al momento de crear el contrato, se debe utilizar el siguiente RUT: 76795561-8 en el ambiente QA para completar el flujo de proceso.
UserDataLogin
Esctructura de UserDataLogin:
Tipo: RAW
Method: POST
Header: Content-Type | application/json
Body:
{
"login": "userapp",
"password": "OnePass"
}
Servicio para obtener el JWT Token Authorization Bearer para utilizar el API.
Endpoint QA: qa.firmavirtual.legal/logindata
Response :
{
"code": 200,
"status": "success",
"message": {
"Authorization": "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
}
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
login |
String |
Usuario para consumir el servicio. |
password |
String |
Clave para consumir el servicio. |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
message |
String |
JWT Token Bearer. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
Login failed: Email or password incorrect. |
Credenciales incorrectas. |
400. |
GetAllUser
Esctructura de GetAllUser:
Tipo: -
Method: GET
Query Params: IDUser
Header: Content-Type | application/json , Authorization | Token JWT
Servicio para obtener los datos de un usuario en específico registrado en sistema a través de su ID.
Endpoint QA: qa.firmavirtual.legal/api/v1/userapp/1
Response :
{
"code": 200,
"status": "success",
"message": {
"iUserID": 1,
"iProfileID": 0,
"sRUT": "323231035",
"sEmail": "andri.marin@gmail.com",
"sPhone": "584127957852",
"sFirstName": "ANDRI",
"sLastName": "MARIN",
"sLogin": "andrimarin",
"sPassword": "df011cb798c582ddf0760c1fb7...",
"sStatus": "ENABLE",
"sComments": "NA"
}
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
Autorization |
String |
Token Bearer obtenido al invocar el método “Login Data”. |
Query Params
Nombre |
Tipo de Datos |
Descripción |
IDUser |
integer |
Identificador único del usuario registrado en el sistemas |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
iUserID |
integer |
Id del usuario generado por el sistema al momento de la creacion |
iProfileID |
integer |
Id del perfil de usuario generado por el sistema al momento de la creación |
sRUT |
string |
RUT del usuario registrado |
sEmail |
string |
Correo electrónico registrado por el usuario |
sPhone |
string |
Teléfono registrado por el usuario |
sFirstName |
string |
Nombres registrado por el usuario |
sLastName |
string |
Apellidos registrado por el usuario |
sLogin |
string |
Usuario creado por el usuario que sirve para iniciar sesión en el sistema. |
sPassword |
string |
Contraseña creada por el usuario |
sStatus |
string |
Estatus del usuario, los valores posibles son ENABLE y DISABLE |
sComments |
string |
Comentarios adicionales sobre este usuario. |
sUserType |
string |
Valores posibles: NATURAL o LEGAL (LEGAL si consideras que el usuario es de tipo empresa, NATURAL si consideras que el usuario no es de tipo empresa. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
Login failed: Email or password incorrect. |
Credenciales incorrectas. |
400. |
CreateUserApp
Esctructura de CreateUserApp:
Tipo: RAW
Method: POST
Headers: Content-Type | application/json
Body:
{
"iProfileID": 0,
"sRUT": "11111111-1",
"sFirstName": "Jose",
"sLastName": "Cortesia",
"sEmail": "contacto@josecortesia.cl",
"sPhone": "+56978570242",
"sLogin": "cortesia",
"sPassword": "1234567890*",
"sComments": "Inversión y Propiedades",
"sUserType": "LEGAL"
}
Servicio que permite crear un usuario nuevo en el sistema.
Endpoint QA: qa.firmavirtual.legal/api/v1/userapp
Response :
{
"code": 201,
"status": "success",
"message": {
"iUserID": 4,
"iProfileID": 0,
"sRUT": "32.256.125-Y",
"sEmail": "jhondoe5@gmail.com",
"sPhone": "0586544554",
"sFirstName": "JOHN",
"sLastName": "DOE",
"sLogin": "andrimarin5",
"sPassword": "!--SECRET--!",
"sStatus": "ENABLE",
"sComments": "Este usuario fue actualizado"
}
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
iProfileID |
integer |
Id del perfil de usuario generado por el sistema al momento de la creación |
sRUT |
string |
RUT del usuario a registrar |
sEmail |
string |
Correo electrónico del usuario a registrar |
sPhone |
string |
Teléfono del usuario a registrar |
sFirstName |
string |
Nombres del usuario a registrar |
sLastName |
string |
Apellidos del usuario a registrar |
sLogin |
string |
Usuario a registrar que sirve para iniciar sesión en el sistema. |
sPassword |
string |
Contraseña del usuario a registrar |
sComments |
string |
Comentarios adicionales sobre este usuario. |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
iUserID |
integer |
Id del usuario generado por el sistema al momento de la creacion |
iProfileID |
integer |
Id del perfil de usuario generado por el sistema al momento de la creación |
sRUT |
string |
RUT del usuario registrado |
sEmail |
string |
Correo electrónico registrado por el usuario |
sPhone |
string |
Teléfono registrado por el usuario |
sFirstName |
string |
Nombres registrado por el usuario |
sLastName |
string |
Apellidos registrado por el usuario |
sLogin |
string |
Usuario creado por el usuario que sirve para iniciar sesión en el sistema. |
sPassword |
string |
Contraseña creada por el usuario |
sStatus |
string |
Estatus del usuario |
sComments |
string |
Comentarios adicionales sobre este usuario. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
Email exists |
El correo electrónico utilizado para registrar el usuario ya existe en el sistema. |
200. |
THIS Login already exists |
El nombre de usuario utilizado para registrar el usuario ya existe en el sistema. |
200. |
Invalid Login must be alphanumeric whit 6 to 16 length |
La contraseña utilizada para registrar el usuario no cumplen con las políticas de seguridad del sistema. |
200. |
UpdateUserApp
Esctructura de UpdateUserApp:
Tipo: RAW
Method: PUT
Headers: Content-Type | application/json , Authorization | Token JWT
Body:
{
"sFirstName": "oriana aas",
"sLastName": "arteaga aae",
"sPhone":"584267957852"
}
*Solo se puede actualizar nombre, apellido, teléfono.
Servicio para actualizar los datos del usuario registrado se requiere el “Bearer Token” del método login data.
Endpoint QA: qa.firmavirtual.legal/api/v1/userapp/4
Response :
{
"code": 200,
"status": "success",
"message": {
"iUserID": 52,
"iProfileID": 0,
"sRUT": "11111111-9",
"sEmail": "11.11.111@gmail.com",
"sPhone": "584267957852",
"sFirstName": "oriana aas",
"sLastName": "arteaga aae",
"sLogin": "orianaescobar51",
"sPassword": "ac72267c6b859875f7249972a2c...",
"sStatus": "ENABLE",
"sComments": "cualquier comentarios"
}
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
Authorization |
string |
Token Bearer obtenido al invocar el método “Login Data” |
sFirstName |
String |
Nombre a modificar |
sLastName |
String |
Apellido a modificar |
sPhone |
String |
Teléfono a modificar |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
iUserID |
integer |
Id del usuario generado por el sistema al momento de la creacion |
iProfileID |
integer |
Id del perfil de usuario generado por el sistema al momento de la creación |
sRUT |
string |
RUT del usuario registrado |
sEmail |
string |
Correo electrónico registrado por el usuario |
sPhone |
string |
Teléfono registrado por el usuario |
sFirstName |
string |
Nombres registrado por el usuario |
sLastName |
string |
Apellidos registrado por el usuario |
sLogin |
string |
Usuario creado por el usuario que sirve para iniciar sesión en el sistema. |
sPassword |
string |
Contraseña creada por el usuario |
sStatus |
string |
Estatus del usuario (ENABLE – DISABLE) |
sComments |
string |
Comentarios adicionales sobre este usuario. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
JWT Token invalid |
Token Bearer erróneo. |
200. |
PasswordReset
Esctructura de PasswordReset:
Tipo: RAW
Method: POST
Headers: Content-Type | application/json
Body: {"login":"11.11.111@gmail.com"}
Servicio que permite recuperar la contraseña de un usuario registrado en el sistema, este método enviará un código de recuperación para luego usar en el método “NewPassword” y crear una nueva contraseña.
Endpoint QA: qa.firmavirtual.legal/pwd/reset
Response :
{
"code": 200,
"status": "success",
"message": {
"info": "Fue enviado a su email la clave temporal, la misma solo es util para ser actualizada inmediatamente "
}
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
login |
string |
Correo electrónico del usuario registrado en el sistema |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
info |
string |
Mensaje que indica el status del request. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
Login / usuario desconocido..! |
Mensaje que indica que el usuario no está registrado en el sistema. |
200. |
NewPassword
Esctructura de NewPassword:
Tipo: RAW
Method: POST
Headers: Content-Type | application/json
Body:
{
"login":"11.11.111@gmail.com",
"password": "18024303",
"new_password":"121111234"
}
Servicio que permite recuperar la contraseña de un usuario registrado en el sistema, a partir del código obtenido del método “PasswordReset”, se necesita el código enviado al correo del usuario.
Endpoint QA: qa.firmavirtual.legal/pwd/reset
Response :
{
{
"code": 200,
"status": "success",
"message": "Password updated"
}
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
login |
string |
Correo electrónico del usuario registrado. |
password |
integer |
Código enviado al correo del usuario. |
new_password |
string |
Nueva contraseña |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
message |
string |
Mensaje que indica que la contraseña fue actualizada con éxito. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
Wrong login or password ..! |
código incorrecto |
200. |
GetOneContract
Esctructura de GetOneContract:
Tipo: -
Method: GET
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params: IDContract
Servicio que permite mostrar información sobre un contrato en específico por medio del ID del contrato.
Endpoint QA: qa.firmavirtual.legal/api/v1/contract/307c1f32-bbb5-4cbe-a4f4-ecf20616510a
Response :
"code": 200,
"status": "success",
"message": {
"sContractID": "307c1f32-bbb5-4cbe-a4f4-ecf20616510a",
"sOwnerType": "NATURAL",
"iContractTypeFeeID": 41,
"sStatus": "SIGNED_PENDING",
"sPaymentStatus": "PENDING",
"iPaymentService": 0,
"dContractDT": "2021-12-10 05:28:54",
"iSignedCount": 1,
"iContractOwner": 4
}
}
Query Params
Nombre |
Tipo de Datos |
Descripción |
IDContract |
integer |
Identificador único del trámite registrado en el sistema. |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
sContractID |
string |
Identificador único del trámite registrado en el sistema |
sOwnerType |
string |
Tipo de usuario registrado en el sistema, los valores posibles son: 'NATURAL' y 'LEGAL'. |
iContractTypeFeeID |
integer |
ID del costo del contrato |
sStatus |
string |
Estatus del trámite, los valores posibles son los siguientes: 'CREATED','REVIEW', 'APPROVED','REJECTED','IN_NOTARY', 'SIGNED_PENDING', 'DELIVERED','FINISHED' y 'OTHER' |
sPaymentStatus |
string |
Estatus del pago del trámite, los valores res posibles son 'PAIDOUT' y 'PENDING' |
iPaymentService |
integer |
Muestra el tipo de pago seleccionado para este trámite. Los valores posibles son "0:WEBPAY (Por los momentos solo tenemos habilitado Webpay) |
iContractOwner |
integer |
ID del usuario registrado en el sistema que creo el contrato. |
dContractDT |
date |
Fecha de creación del contrato |
iSignedCount |
integer |
Cantidad de participantes registrados en el sistema. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
CreateContract
Esctructura de CreateContract:
Tipo: RAW
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params : IDContract
Body:
{
"sOwnerType": "NATURAL",
"sPaymentStatus": "PENDING",
"iPaymentService": 1,
"iContractTypeFeeID": 28,
"iSignedCount": 1,
"callback":"https://ejemplo.com/webhook",
"signers":
[
{
"full_name": "Jose Cortesia",
"email": "jose@firmavirtual.com",
"rutId": "11111111-1",
"phone": "873320311",
"type":"NATURAL",
"portion":"100",
"payment":"0.00"
}
]
}
Servicio que permite crear un contrato (trámite) con la cantidad y los datos de los participantes que van a firmar el documento.
Endpoint QA: https://qa.firmaviertual.legal/api/v1/contract/create-contract
Response :
{
"code": 201,
"status": "success",
"message": [
{
"sContractID": "daa84a29-e800-4115-abad-066971118ccf",
"sOwnerType": "NATURAL",
"iContractTypeFeeID": 28,
"sStatus": "CREATED",
"sPaymentStatus": "PENDING",
"iPaymentService": 0,
"dContractDT": {
"date": "2022-08-04 03:56:20.594852",
"timezone_type": 3,
"timezone": "UTC"
},
"iSignedCount": 1,
"iContractOwner": 20
},
[
{
"full_name": "Jose Cortesia",
"phone": "873320311",
"rutId": "11111111-1",
"email": "jose@firmavirtual.com",
"type": "NATURAL",
"portion": 100,
"payment": "8815.00",
"iva": "1675.00",
"notary": "4000.00",
"total": "14490.00"
}
]
]
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
sOwnerType |
string |
Tipo de usuario registrado en el sistema, los valores posibles son: 'NATURAL' y 'LEGAL'. |
sPaymentStatus |
string |
Estatus del pago del trámite, los valores posibles son 'PAIDOUT' y 'PENDING' (Valor asignado por default) |
iPaymentService |
integer |
Muestra el tipo de pago seleccionado para este trámite. Los valores posibles son "0:WEBPAY" (Por los momentos tenemos activo WEBPAY) |
iContractTypeFeeID |
integer |
ID del costo del contrato (ver GETCONTRACTTYPE para obtener los IDs) |
iSignedCount |
integer |
Cantidad de participantes que firman el documento. |
Callback |
string |
Este dato es opcional, sirve para informar sobre el cambio de status del contrato en tiempo real. |
signers |
object |
Objeto que contiene los participantes del contrato. |
fullName |
string |
Nombres y apellidos del o los participantes |
email |
string |
Correo electrónico del o los participantes |
rutId |
string |
RUT del o los participantes. Al momento de crear el contrato utilizar el siguiente RUT: 76795561-8 en el ambiente QA. |
phone |
string |
Número telefónico del o los participantes |
type |
string |
Valores posibles NATURAL | LEGAL. Natural para personas naturales y LEGAL para firmantes de tipo empresa. |
portion |
integer |
Valores posibles 100 | 50. Determina que firmante va a pagar por el servicio y que porcentaje, 50 significa que va a pagar el cincuenta por ciento del costo total del servicio y 100 significa que va a pagar el cien por ciento del costo total del servicio. Pueden Pagar máximo dos personas mínimo una. |
payment |
float |
Este campo debe ir con 0.00 para todos los casos (campo obsoleto). |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
sContractID |
string |
Identificador único del trámite registrado en el sistema. |
sOwnerType |
string |
Tipo de usuario registrado en el sistema, los valores posibles son: 'NATURAL' y 'LEGAL'. |
iContractTypeFeeID |
integer |
ID del costo del contrato |
sStatus |
string |
Estatus del trámite, los valores posibles son los siguientes: 'CREATED','REVIEW', 'APPROVED','REJECTED','IN_NOTARY', 'SIGNED_PENDING', 'DELIVERED','FINISHED' y 'OTHER' |
sPaymentStatus |
string |
Estatus del pago del trámite, los valores res posibles son 'PAIDOUT' y 'PENDING' |
iPaymentService |
string |
Muestra el tipo de pago seleccionado para este trámite. Los valores posibles son "0:WEBPAY", |
dContractDT |
string |
Fecha de creación del contrato |
date |
object |
Objeto que guarda más detalles del contrato |
timezone_type |
integer |
Tipo del UTC |
timezone |
string |
Timezone definido como UTC. |
iSignedCount |
integer |
Cantidad de participantes registrados en el sistema. |
iContractOwner |
integer |
ID del usuario registrado en el sistema que creo el contrato. |
fullName |
string |
Nombre de los participantes a registrar |
email |
string |
Correo de los participantes a registrar |
rutId |
string |
Rut de los participantes a registrar |
phoneNumber |
string |
Teléfono de los participantes a registrar |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
VALIDATION-FAIL |
Indica error en el tipo de dato enviado en el request. |
400 |
GetContractType
Esctructura de GetContractType:
Tipo: -
Method: GET
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params: QTYPE, QVALUE
Servicio que permite listar los tipos de contrato o trámites que ofrece la empresa. Cada uno de estos contratos permite la Firma Electrónica Simple y dependiendo del tipo y cantidad de firmantes permitirá o no la firma electrónica con protocolización o certificación notarial.
Endpoint QA: qa.firmavirtual.legal/api/v1/contract-type/{QTYPE}/{QVALUE}
Response :
{
"code": 200,
"status": "success",
"message": [
{
"iContractTypeID": 1,
"sContractType": "REAL_ESTATE",
"sContractTypeName": "CONTRATO DE ARIENDO",
"iContractTypeFeeID": 1,
"sModal": "SIGNATURE",
"iSignCount": 1,
"fAmount": "1990.00"
},…
Query Params
Nombre |
Tipo de Datos |
Descripción |
QTYPE |
string |
Tipo de dato a consultar. Los posibles valores son: {CONTRACT-TYPE/ /ID/FEE/MODAL/ALL} |
QVALUE |
String / integer |
ALL :: / 0 - Obtienes un listado con la información de los tipos de contratos. |
|
TYPE :: / {REAL_ESTATE/LABOR/PERSONAL/POWER/COMPANY/SOCIETY/VEHICLE} - Obtienes la información de los tipos de contratos con más detalle. |
|
MODAL:: / {SIGNATURE/SIGNATURE_CERT_NOTARIAL/SIGNATURE_PROT_NOTARIAL} - Obtienes la información de los tipos de contratos por tipo de firma. |
|
ID ::/{1..26} - Obtiene la información de los tipos de contratos por ID. |
|
FEE::/{1..117} - Obtienes el precio de los contratos por ID del FEE. |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
iContractTypeID |
integer |
Identificado único del tipo de contrato |
sContractType |
string |
Nombre del tipo de trámite. Los posibles valores son: 'REAL_ESTATE', 'LABOR', 'PERSONAL','POWER','COMPANY', 'SOCIETY' y 'VEHICLE'. |
sContractTypeName |
string |
Nombre del tipo de contrato, El tipo de contrato está asociado al tipo de trámite. (Ver tabla 1) |
iContractTypeFeeID |
integer |
ID del costo del contrato |
sModal |
string |
Define el tipo de firma a registrar en el sistema. Los valores posibles son los siguientes: 'SIGNATURE', 'SIGNATURE_CERT_NOTARIAL', 'SIGNATURE_PROT_NOTARIAL' |
iSignCount |
integer |
Cantidad firmantes |
fAmount |
float |
Costo del tramite |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
Tipos de trámites y sus contratos asociados
Inmobiliario |
Contrato de arriendo |
Promesa de compraventa |
Prórroga de promesa de compraventa |
Mandato de administración |
Orden de arriendo |
Orden de visita |
Orden de venta |
Carta de oferta |
Carta de contra oferta |
Resciliación de contrato de arriendo |
Resciliación de promesa de compraventa |
Laboral |
Certificado laboral con chileno |
Contrato laboral con extranjero |
Carta de renuncia |
Poderes |
Poder simple |
Personales |
Salvoconducto |
Permiso mudanza |
Certificación domicilio |
Uso de domicilio |
Legalización copia cédula de identidad |
Declaración jurada |
Certificado de estado civil |
Sociedades |
Comercial |
Finiquito Empresarial |
Cesión de Contrato |
Vehículo |
Promesa de compraventa de vehículo |
ContractOwner
Esctructura de ContractOwner:
Tipo: -
Method: GET
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params: IDOwner
Servicio que permite listar los contratos o trámites por usuario.
Endpoint QA: qa.firmavirtual.legal /api/v1/contract/owner/1
Response :
{
"code": 200,
"status": "success",
"message": [
{
"sContractID": "257c3419-f15a-489f-bd4b-580109ee58c9",
"sOwnerType": "NATURAL",
"iContractTypeFeeID": 53,
"sStatus": "CREATED",
"sPaymentStatus": "PENDING",
"iPaymentService": 0,
"iContractOwner": 1,
"dContractDT": "2021-12-10 05:29:11",
"iSignedCount": 2,
"NumeroFirmantes": 0,
"withDocument": 1,
"sTipoFirma": "FIRMA CON PROTOCOLIZACION NOTARIAL",
"sClaseContrato": "INMOBILIARIO",
"sTipoContrato": "CONTRATO DE ARIENDO",
"Monto": "19980.00"
},…
Query Params
Nombre |
Tipo de Datos |
Descripción |
IDOwner |
integer |
Identificador único del usuario registrado en el sisitema |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
sContractID |
string |
Identificador único del trámite registrado en el sistema. |
sOwnerType |
string |
Tipo de usuario registrado en el sistema, los valores posibles son: 'NATURAL' y 'LEGAL'. |
iContractTypeFeeID |
integer |
ID del costo del contrato |
sStatus |
string |
Estatus del usuario |
sPaymentStatus |
string |
Estatus del pago del trámite, los valores res posibles son 'PAIDOUT' y 'PENDING' |
iPaymentService |
integer |
Muestra el tipo de pago seleccionado para este trámite. Los valores posibles son "0:WEBPAY", |
iContractOwner |
integer |
ID del usuario registrado en el sistema que creo el contrato. |
dContractDT |
date |
Fecha de creación del contrato |
iSignedCount |
integer |
Cantidad de participantes registrados en el sistema. |
NumeroFirmantes |
integer |
Cantidad de participantes o firmantes asignados al contrato. |
withDocument |
integer |
Muestra si el contrato registrado tiene documentos adjuntos |
sTipoFirma |
string |
Contiene el tipo de firma |
sClaseContrato |
string |
Nombre del tipo de trámite. Los posibles valores son: 'REAL_ESTATE', 'LABOR', 'PERSONAL','POWER','COMPANY', 'SOCIETY' y 'VEHICLE'. |
sTipoContrato |
string |
Nombre del tipo de contrato, El tipo de contrato está asociado al tipo de trámite. (Ver tabla 1) |
Monto |
float |
Costo del contrato. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
ContratcDetail
Esctructura de ContratcDetail:
Tipo: -
Method: GET
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params: ContractID
Servicio que permite visualizar los detalles de un contrato o trámite por usuario.
Endpoint QA: qa.firmavirtual.legal/api/v1/contract/detail/391b2edf-e23e-4d6a-b4f0-31f6713da010
Response :
{
"code": 200,
"status": "success",
"message": {
"contrato": [
{
"sContractID": "54431056-8e90-40b3-97ae-de029cc4b138",
"sOwnerType": "NATURAL",
"iContractTypeFeeID": 28,
"sStatus": "APPROVED",
"sPaymentStatus": "PAIDOUT",
"iPaymentService": 0,
"iContractOwner": 20,
"dContractDT": "2022-07-28 23:09:23",
"iSignedCount": 1,
"NumeroFirmantes": 1,
"withDocument": 1,
"sTipoFirma": "FIRMA CON CERTIFICACION NOTARIAL",
"sClaseContrato": "INMOBILIARIO",
"sTipoContrato": "PROMESA DE COMPRAVENTA",
"modal": "SIGNATURE_CERT_NOTARIAL",
"Repertorio": null,
"autoId": "AP211",
"Monto": "8815.00"
}
],
"firmantes": [
{
"num": 523,
"RUT": "11111111-1",
"email": "jose@firmavirtual.com",
"full_name": "Jose Cortesia",
"phone": "873320311",
"portion": "50.00",
"amount": "8815.00",
"iva": "1675.00",
"notaryPay": "4000.00",
"totalPay": "14490.00",
"payment": "PAYOUT",
"download_draft": "SUCCESS",
"agree_draft": "SUCCESS",
"disagree_draft": "DISABLE",
"sign_status": "NOTHING"
},
{
"num": 524,
"RUT": "22222222-1",
"email": "jose2@firmavirtual.com",
"full_name": "Jose Cortesia",
"phone": "873320311",
"portion": "50.00",
"amount": "8815.00",
"iva": "1675.00",
"notaryPay": "4000.00",
"totalPay": "14490.00",
"payment": "PAYOUT",
"download_draft": "SUCCESS",
"agree_draft": "SUCCESS",
"disagree_draft": "DISABLE",
"sign_status": "NOTHING"
}
],
"archivos": [
{
"file_name": "54431056-8e90-40b3-97ae-de029cc4b138.pdf",
"orden": 0
}
]
}
}
* La notificación de creación de contrato realizada por el usuario se le enviará a cada firmante con el documento que se subió al sistema para que pueda ser revisado y aceptado por ellos desde el mismo correo. Este procedimiento informará al api que firmante aceptó o rechazó el documento. Adicionalmente luego que todos los firmantes acepten o esten de acuerdo con el documento enviado, automanticamente el sistema le enviará un correo con la notificación de pago del trámite según la porción definida via api para ese firmante.
Query Params
Nombre |
Tipo de Datos |
Descripción |
ContractID |
integer |
Identificador único del trámite registrado en el sistema. |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
sContractID |
string |
Identificador único del trámite registrado en el sistema. |
sOwnerType |
string |
Tipo de usuario registrado en el sistema, los valores posibles son: 'NATURAL' y 'LEGAL'. |
iContractTypeFeeID |
integer |
ID del costo del contrato |
sStatus |
string |
Estatus del contrato |
sPaymentStatus |
string |
Estatus del pago del trámite, los valores res posibles son 'PAIDOUT' y 'PENDING' |
iPaymentService |
integer |
Muestra el tipo de pago seleccionado para este trámite. Los valores posibles son "0:WEBPAY", |
iContractOwner |
integer |
ID del usuario registrado en el sistema que creo el contrato. |
dContractDT |
date |
Fecha de creación del contrato |
iSignedCount |
integer |
Cantidad de participantes registrados en el sistema |
NumeroFirmantes |
integer |
Cantidad de participantes o firmantes asignados al contrato. |
withDocument |
integer |
Muestra si el contrato registrado tiene documentos adjuntos |
sTipoFirma |
string |
Contiene el tipo de firma |
sClaseContrato |
string |
Nombre del tipo de trámite. Los posibles valores son: 'REAL_ESTATE', 'LABOR', 'PERSONAL','POWER','COMPANY', 'SOCIETY' y 'VEHICLE'. |
sTipoContrato |
string |
Nombre del tipo de contrato, El tipo de contrato está asociado al tipo de trámite. (Ver tabla 1) |
modal |
string |
Indica el tipo de firma escogido por el usuario (FIRMA ELECTRONICA, FIRMA ELECTRONICA AVANZADA, FIRMA ELECTRONICA + PROTOCOLIZACIÓN NOTARIAL, FIRMA ELECTRONICA + CERTIFICACIÓN NOTARIAL) |
repertorio |
string |
Este dato solo aplica para los contratos con tipo de firma con certificación notarial o con protocolización notarial. Este dato hace referencia al número de repertorio o número de folio entregado por las notarías. |
autoId |
string |
ID para uso interno del equipo de firma virtual. |
Monto |
float |
Costo del contrato. |
firmantes |
object |
Objeto que contiene un arreglo de los datos de los firmantes asociados al contrato. |
Num |
int |
RUT |
string |
RUT de los participantes. |
email |
string |
Correo electrónico de los participantes |
full_name |
string |
Nombres y apellidos de los participantes |
Phone |
string |
Teléfonos de los participantes |
portion |
float |
Indica la porción en porcentaje que debe pagar el firmante con respecto al monto total, puede ser 50 o 100 representado 50% o 100% respectivamente. |
amount |
float |
Monto a pagar por el firmante según la porción asignada. |
iva |
float |
Indica el monto del IVA 19%. |
notaryPay |
float |
Costo de la notaría, para el caso de los tramites con notaria (Firma con protocolización y Firma con certificación) |
totalPay |
float |
Total a pagar por el firmante. |
payment |
string |
Estatus del pago del trámite, los valores posibles son 'PAIDOUT' y 'PENDING' |
download_draft |
string |
Este valor indica si el usuario descargó el documento o contrato enviado via correo al momento de crear el trámite. ENABLE indica que el documento está habilitado para su descarga, en el caso contrario (DISABLE) que el documento no se encuentra disponible. |
agree_draft |
string |
Este valor indica que el documento enviado al correo del firmante fue descargado y aceptado. |
disagree_draft |
string |
Este valor indica que el documento fue rechazado por el usuario. |
sign_status |
string |
Informa sobre el estatus de la firma del participante. NOTHING:NO HA FIRMADO, ENABLE: FIRMÓ. |
archivos |
object |
Objeto que contiene un arreglo con los archivos cargados al contrato |
file_name |
string |
Nombre del o los archivos asociados al contrato. |
orden |
string |
Orden del o los archivos asociados al contrato. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
DeleteContract
Esctructura de DeleteContract:
Tipo: -
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params: IDContract
Servicio que permite eliminar un contrato en específico por medio del ID del contrato.
Endpoint QA: qa.firmavirtual.legal/api/v1/contract/307c1f32-bbb5-4cbe-a4f4-ecf20616510a
Response :
{
"code": 204,
"status": "success",
"message": {}
}
Query Params
Nombre |
Tipo de Datos |
Descripción |
IDContract |
integer |
Identificador único del trámite registrado en el sistema. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
SubirDocumentos
Esctructura de SubirDocumentos:
Tipo: HTML
Method: GET
Headers: Authorization | Token JWT
Servicio que permite subir los documentos (Solo PDF) a firmar.
Endpoint QA: qa.firmavirtual.legal/api/v1/up-file
Response :
{
"code": 200,
"status": "success",
"message": {}
}
Durante la subida del archivo, para que se pueda relacionar con el contrato que has creado, el documento debe tener como nombre el ID del contrato, esto permitirá relacionar el documento al contrato.
Hemos habilitado una url para que puedas asignar el documento al id del contrato.
URL para la subida y asignación de documentos QA: qa.firmavirtual.legal/api/v1/upfile
Ejemplo de implementación con REACT y Axios.
FileList
Esctructura de FileList :
Tipo: -
Method: GET
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params : ContractID
Servicio que permite listar los documentos asociados a un contrato creado en el sistema.
Endpoint QA: qa.firmavirtual.legal/api/v1/filelist/391b2edf-e23e-4d6a-b4f0-31f6713da010
Response :
{
"code": 200,
"status": "success",
"message": [
{
"contractID": "391b2edf-e23e-4d6a-b4f0-31f6713da010",
"document": "391b2edf-e23e-4d6a-b4f0-31f6713da010_767036093.pdf",
"url": "391b2edf-e23e-4d6a-b4f0-31f6713da010_767036093.pdf",
"description": "NA",
"orden": 0
},…
Query Params
Nombre |
Tipo de Datos |
Descripción |
ContractID |
integer |
Identificador único del trámite registrado en el sistema. |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
contractID |
integer |
Identificador único del trámite registrado en el sistema. |
document |
string |
Nombre del documento asociado al contrato. |
url |
string |
url generado para la descarga del documento |
description |
string |
Comentarios adicionales sobre los documentos |
orden |
integer |
Posición del documento, número que se utilizará para establecer la posición de cada documento durante la unificación del mismo. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
SortFiles
Esctructura de SortFiles :
Tipo: RAW
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Body:
{
"contractID": "391b2edf-e23e-4d6a-b4f0-31f6713da010",
"file_order":[
{
"document": "02c47a6d-ee0e-4074-82b2-0d6dabf74e12_untitled_0.pdf",
"ind": 2,
"action":"CHANGE"
},
{
"document": "02c47a6d-ee0e-4074-82b2-0d6dabf74e12_FICHATÉCNICAValentinaMarin.pdf",
"ind":3,
"action":"CHANGE"
},
{
"document": "02c47a6d-ee0e-4074-82b2-0d6dabf74e12_alcance.docx_0.pdf",
"ind":1,
"action":"REMOVE"
}
]
}
Servicio que permite reordenar los archivos PDF subidos al sistema, es útil cuando el usuario quiere mover de posición o número de hoja un documento que quiere unificar.
Endpoint QA: qa.firmavirtual.legal/api/v1/sortfiles
Response :
{
"code": 207,
"status": "success",
"message": [
{
"contractID": "391b2edf-e23e-4d6a-b4f0-31f6713da010",
"document": "391b2edf-e23e-4d6a-b4f0-31f6713da010_767036093.pdf",
"url": "391b2edf-e23e-4d6a-b4f0-31f6713da010_767036093.pdf",
"description": "NA",
"orden": 0
},…
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
contractID |
string |
Identificador único del trámite registrado en el sistema. |
file_order |
object |
Arreglo que contiene la información sobre el orden de los documentos. Este orden se establece para luego unificar todos los documentos en uno subidos al sistema asociados a un contrato. |
ind |
integer |
Índice del documento que establece el orden o posición del archivo |
action |
string |
Muestra la acción a realizar sobre el documento. Estos valores pueden ser: REMOVE, CHANGE. |
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
contractID |
integer |
Identificador único del trámite registrado en el sistema. |
document |
string |
Nombre del documento asociado al contrato. |
url |
string |
url generado para la descarga del documento |
description |
string |
Comentarios adicionales sobre los documentos |
orden |
integer |
Posición del documento, número que se utilizará para establecer la posición de cada documento durante la unificación del mismo. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
MergedFile
Esctructura de MergedFile :
Tipo: RAW
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params: ContractID
Servicio que permite unir documentos cargados al sistema y hacerlo uno solo, se recomienda unificar los documentos luego de reordenarlos con los servicios sortfile.
Endpoint QA: qa.firmavirtual.legal/api/v1/contract/merge/391b2edf-e23e-4d6a-b4f0-31f6713da010
Response :
{
"code": 207,
"status": "success",
"message": {}
}
Query Params
Nombre |
Tipo de Datos |
Descripción |
contractID |
string |
Identificador único del trámite registrado en el sistema. |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
SendContract
Esctructura de SendContract :
Tipo: RAW
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Query Params: IDContract
Servicio que permite enviar notificaciones, por medio de correos electrónicos, a todos los participantes (firmantes) de que tienen un documento pendiente para su revisión. El response de este end point informa los tokens creados para aprobar, rechazar y descarga de documentos.
Endpoint QA: qa.firmavirtual.legal/api/v1/contract/send/draft/391b2edf-e23e-4d6a-b4f0-31f6713da010
Response :
{
"code": 207,
"status": "success",
"message": {
"msg": "email-doc: 391b2edf-e23e-4d6a-b4f0-31f6713da010",
"ok_count": 2,
"fail_count": 0,
"info_detail": [
{
"full_name": "Jose Cortesia",
"email": "contacto@algo.cl",
"status_mail": "success",
"info_mail": {
"info": "Correo de Jose Cortesia fue enviado satisfactoriamente",
"result": {},
"tok": {
"download": "0031a25e7fc91...",
"agree": "97ac7ce3dedc73...",
"disagree": "ea6ed3ae5d0...",
"st_down": {
"status": "sucess",
"result": null
},
"st_ag": {
"status": "sucess",
"result": null
},
"st_disag": {
"status": "sucess",
"result": null
}
}
}
},...
Parámetros Response
Nombre |
Tipo de Datos |
Descripción |
msg |
string |
|
ok_count |
string |
|
fail_count |
integer |
|
info_detail |
integer |
|
full_name |
integer |
|
email |
string |
|
status_mail |
string |
|
info_mail |
array |
|
info |
string |
|
result |
array |
|
tok |
array |
|
download |
string |
|
agree |
string |
|
disagree |
string |
|
st_down |
array |
|
status |
string |
|
result |
string |
|
st_ag |
array |
|
status |
string |
|
result |
string |
|
st_disag |
array |
|
status |
string |
|
result |
string |
|
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
CreateSigner
Esctructura de CreateSigner :
Tipo: RAW
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Body:
{
"contractID":"d415760d-350d-4c8f-854d-8dca946d0233",
"full_name": "Andri Marin",
"email": "andri.marin@gmail.com",
"rutId": "14666666-1",
"phone": "961420311"
}
Servicio que permite crear firmantes para un contrato previamente creado.
Endpoint QA: qa.firmavirtual.legal/api/v1/signer/new
Response :
{
"code": 207,
"status": "success",
"message": { }
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
sContractID |
string |
Identificador único del trámite registrado en el sistema. |
RUT |
string |
RUT de los participantes |
email |
string |
Correo electrónico de los participantes |
full_name |
string |
Nombres y apellidos de los participantes |
Phone |
string |
Teléfonos de los participantes |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
UpdateSigner
Esctructura de UpdateSigner :
Tipo: RAW
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Body:
{
"contractID":"d415760d-350d-4c8f-854d-8dca946d0233",
"full_name": "Jose G. Cortesia R.",
"email": "contacto@gmail.com",
"rutId": "14123123-6",
"phone": "930139020"
}
Servicio que permite actualizar los datos de los firmantes asignados a un contrato previamente creado.
Endpoint QA: qa.firmavirtual.legal/api/v1/signer/upd
Response :
{
"code": 207,
"status": "success",
"message": { }
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
sContractID |
string |
Identificador único del trámite registrado en el sistema. |
RUT |
string |
RUT de los participantes |
email |
string |
Correo electrónico de los participantes |
full_name |
string |
Nombres y apellidos de los participantes |
Phone |
string |
Teléfonos de los participantes |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |
DeleteSigner
Esctructura de DeleteSigner :
Tipo: RAW
Method: POST
Headers: Content-Type | application/json, Authorization | Token JWT
Body:
{
"contractID":"d415760d-350d-4c8f-854d-8dca946d0233",
"rutId": "14123123-1"
}
Servicio que permite eliminar firmantes que se hayan asignados a un contrato previamente creado.
Endpoint QA: qa.firmavirtual.legal/api/v1/signer/del
Response :
{
"code": 207,
"status": "success",
"message": { }
}
Parámetros Request
Nombre |
Tipo de Datos |
Descripción |
sContractID |
string |
Identificador único del trámite registrado en el sistema. |
RUT |
string |
RUT de los participantes |
Catálogo de errores y mensajes fallidos
Message |
Descripción |
status |
error |
Token Bearer erróneo |
400 |