Crear y Enviar Solicitud de Firma
curl --request POST \
--url https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"expires_at": "<string>",
"expires_in": 123,
"documents": [
{
"name": "<string>",
"file": "<string>"
}
],
"signers": [
{
"full_name": "<string>",
"document_type": "<string>",
"document_number": "<string>",
"email": "<string>",
"phone": "<string>"
}
]
}
'import requests
url = "https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature"
payload = {
"name": "<string>",
"expires_at": "<string>",
"expires_in": 123,
"documents": [
{
"name": "<string>",
"file": "<string>"
}
],
"signers": [
{
"full_name": "<string>",
"document_type": "<string>",
"document_number": "<string>",
"email": "<string>",
"phone": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
expires_at: '<string>',
expires_in: 123,
documents: [{name: '<string>', file: '<string>'}],
signers: [
{
full_name: '<string>',
document_type: '<string>',
document_number: '<string>',
email: '<string>',
phone: '<string>'
}
]
})
};
fetch('https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'expires_at' => '<string>',
'expires_in' => 123,
'documents' => [
[
'name' => '<string>',
'file' => '<string>'
]
],
'signers' => [
[
'full_name' => '<string>',
'document_type' => '<string>',
'document_number' => '<string>',
'email' => '<string>',
'phone' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"expires_in\": 123,\n \"documents\": [\n {\n \"name\": \"<string>\",\n \"file\": \"<string>\"\n }\n ],\n \"signers\": [\n {\n \"full_name\": \"<string>\",\n \"document_type\": \"<string>\",\n \"document_number\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"expires_in\": 123,\n \"documents\": [\n {\n \"name\": \"<string>\",\n \"file\": \"<string>\"\n }\n ],\n \"signers\": [\n {\n \"full_name\": \"<string>\",\n \"document_type\": \"<string>\",\n \"document_number\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"expires_in\": 123,\n \"documents\": [\n {\n \"name\": \"<string>\",\n \"file\": \"<string>\"\n }\n ],\n \"signers\": [\n {\n \"full_name\": \"<string>\",\n \"document_type\": \"<string>\",\n \"document_number\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"message": "<string>",
"data": {
"signature": {
"id": "<string>",
"organization_id": {},
"name": "<string>",
"status": "<string>",
"status_name": "<string>",
"created_at": "<string>",
"expiration_date": {},
"completed_at": {},
"rejected_at": {},
"rejected_reason": {},
"rejected_by": {},
"documents": [
{}
],
"signers": [
{}
]
}
}
}FirmaID
Crear y Enviar Solicitud de Firma
Crea una nueva solicitud de firma y la envía inmediatamente a los firmantes
POST
/
api
/
v1
/
firmaid
/
send-request-new-signature
Crear y Enviar Solicitud de Firma
curl --request POST \
--url https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"expires_at": "<string>",
"expires_in": 123,
"documents": [
{
"name": "<string>",
"file": "<string>"
}
],
"signers": [
{
"full_name": "<string>",
"document_type": "<string>",
"document_number": "<string>",
"email": "<string>",
"phone": "<string>"
}
]
}
'import requests
url = "https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature"
payload = {
"name": "<string>",
"expires_at": "<string>",
"expires_in": 123,
"documents": [
{
"name": "<string>",
"file": "<string>"
}
],
"signers": [
{
"full_name": "<string>",
"document_type": "<string>",
"document_number": "<string>",
"email": "<string>",
"phone": "<string>"
}
]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
expires_at: '<string>',
expires_in: 123,
documents: [{name: '<string>', file: '<string>'}],
signers: [
{
full_name: '<string>',
document_type: '<string>',
document_number: '<string>',
email: '<string>',
phone: '<string>'
}
]
})
};
fetch('https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'expires_at' => '<string>',
'expires_in' => 123,
'documents' => [
[
'name' => '<string>',
'file' => '<string>'
]
],
'signers' => [
[
'full_name' => '<string>',
'document_type' => '<string>',
'document_number' => '<string>',
'email' => '<string>',
'phone' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"expires_in\": 123,\n \"documents\": [\n {\n \"name\": \"<string>\",\n \"file\": \"<string>\"\n }\n ],\n \"signers\": [\n {\n \"full_name\": \"<string>\",\n \"document_type\": \"<string>\",\n \"document_number\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"expires_in\": 123,\n \"documents\": [\n {\n \"name\": \"<string>\",\n \"file\": \"<string>\"\n }\n ],\n \"signers\": [\n {\n \"full_name\": \"<string>\",\n \"document_type\": \"<string>\",\n \"document_number\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://prd-api.verifica.id/api/v1/firmaid/send-request-new-signature")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"expires_at\": \"<string>\",\n \"expires_in\": 123,\n \"documents\": [\n {\n \"name\": \"<string>\",\n \"file\": \"<string>\"\n }\n ],\n \"signers\": [\n {\n \"full_name\": \"<string>\",\n \"document_type\": \"<string>\",\n \"document_number\": \"<string>\",\n \"email\": \"<string>\",\n \"phone\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"status": "<string>",
"message": "<string>",
"data": {
"signature": {
"id": "<string>",
"organization_id": {},
"name": "<string>",
"status": "<string>",
"status_name": "<string>",
"created_at": "<string>",
"expiration_date": {},
"completed_at": {},
"rejected_at": {},
"rejected_reason": {},
"rejected_by": {},
"documents": [
{}
],
"signers": [
{}
]
}
}
}Autenticación
Este endpoint requiere autenticación Bearer. Incluye tu API key en el header Authorization (si aún no sabes cómo obtener y usar tu API key, consulta la página de Autenticación):Authorization: Bearer YOUR_API_KEY
Cuerpo de la Solicitud
Nombre de la solicitud de firma (máximo 255 caracteres)
Fecha y hora de expiración (formato ISO 8601). Requerido sin
expires_in. Debe ser al menos 10 minutos en el futuro.Minutos hasta la expiración. Requerido sin
expires_at. Mínimo: 1, Máximo: 43200Lista de firmantes (mínimo 1)
Show propiedades de firmante
Show propiedades de firmante
Nombre completo del firmante (máximo 255 caracteres)
Tipo de documento:
dni, ce, o passportNúmero de documento (máximo 30 caracteres)
Correo electrónico del firmante (máximo 255 caracteres)
Teléfono del firmante (máximo 20 caracteres)
Respuesta
Estado de la respuesta (ej: “success”)
Mensaje de respuesta
Datos de respuesta
Show propiedades de data
Show propiedades de data
Objeto de la solicitud de firma creada
Show propiedades de signature
Show propiedades de signature
UUID de la solicitud de firma
ID de la organización
Nombre de la solicitud de firma
Estado de la firma
Nombre del estado en formato legible
Fecha y hora de creación
Fecha y hora de expiración
Fecha y hora de completado
Fecha y hora de rechazo
Motivo del rechazo
Quién rechazó la firma
Lista de documentos
Lista de firmantes con sus detalles
Ejemplo de Solicitud
{
"name": "Contrato de Servicios 2024",
"expires_in": 10080,
"documents": [
{
"name": "Contrato.pdf",
"file": "JVBERi0xLjQKJeLjz9MKMyAwIG9iago..."
}
],
"signers": [
{
"full_name": "Juan Pérez",
"document_type": "dni",
"document_number": "12345678",
"email": "[email protected]",
"phone": "+51999999999"
},
{
"full_name": "María García",
"document_type": "ce",
"document_number": "87654321",
"email": "[email protected]"
}
]
}
Ejemplo de Respuesta
{
"status": "success",
"message": "Signature created successfully.",
"data": {
"signature": {
"id": "123e4567-e89b-12d3-a456-426614174000",
"organization_id": 1,
"name": "Contrato de Servicios 2024",
"status": "sent",
"status_name": "Enviado",
"created_at": "2024-01-15T10:30:00Z",
"expiration_date": "2024-01-22T10:30:00Z",
"completed_at": null,
"rejected_at": null,
"rejected_reason": null,
"rejected_by": null,
"documents": [],
"signers": []
}
}
}
⌘I