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
¿Todavía no tienes un API token? El campo
Authorization del panel Try it espera tu token Bearer. Revisa dónde obtener tu API token para conseguirlo.Authorization: Bearer YOUR_API_KEY
Cuerpo de la Solicitud
string
required
Nombre de la solicitud de firma (máximo 255 caracteres)
string
Fecha y hora de expiración (formato ISO 8601). Requerido sin
expires_in. Debe ser al menos 10 minutos en el futuro.integer
Minutos hasta la expiración. Requerido sin
expires_at. Mínimo: 1, Máximo: 43200array
required
array
required
Lista de firmantes (mínimo 1)
Show propiedades de firmante
Show propiedades de firmante
Respuesta
string
Estado de la respuesta (ej: “success”)
string
Mensaje de respuesta
object
Datos de respuesta
Show propiedades de data
Show propiedades de data
object
Objeto de la solicitud de firma creada
Show propiedades de signature
Show propiedades de signature
string
UUID de la solicitud de firma
integer | null
ID de la organización
string
Nombre de la solicitud de firma
string
Estado de la firma
string
Nombre del estado en formato legible
string
Fecha y hora de creación
string | null
Fecha y hora de expiración
string | null
Fecha y hora de completado
string | null
Fecha y hora de rechazo
string | null
Motivo del rechazo
string | null
Quién rechazó la firma
array
Lista de documentos
array
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": "juan.perez@example.com",
"phone": "+51999999999"
},
{
"full_name": "María García",
"document_type": "ce",
"document_number": "87654321",
"email": "maria.garcia@example.com"
}
]
}
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": []
}
}
}