1. Simple legacy SMS (v3 compat)
{
"RESP": "JSON",
"TIPOFIRMA": "BIOMETRICA",
"MEDIOCOMUNICACION": "SMS",
"REMITENTE": "FIRMA",
"MENSAJE": "Firma aquí: [LINK]",
"FIRMANTES": [{"Nombre":"Juan","NIF":"00000000T","Telefono":"34600000001","Email":"j@a.com","Orden":1}],
"DOCUMENTOS": [{"Tipo":"CHECKBOX","Texto":"Acepto","Inicial":"OFF","Final":"ON"}]
}
2a. Cascade SMS → Email (validated own domain)
Important: the domain su-dominio.com must be registered and validated in your Transactional Email panel. If you do not have it validated the send will fail with Res=-25; in that case use example 2b with __pordefecto__.
{
"RESP": "JSON",
"TIPOFIRMA": "BIOMETRICA",
"CANALESFIRMA": [
{"TIPO":"SMS","REMITENTE":"FIRMA","MENSAJE":"Firma: {{LINK}}"},
{"TIPO":"EMAIL","DOMINIO":"su-dominio.com","REMITENTE":"contratos@su-dominio.com","IDPLANTILLA":12345,"ASUNTOEMAIL":"Firma"}
],
"FIRMANTES": [{"Nombre":"Juan","NIF":"00000000T","Telefono":"34600000001","Email":"j@a.com","Orden":1}],
"DOCUMENTOS": [{"Tipo":"PDF","Nombre":"Contrato","Contenido":"JVBERi0xLj...","Aceptacion":"SI","StampFirmaFirmante":"1,80,500,180,80,H"}]
}
2b. Cascade SMS → Email (default domain, without validation)
Use the __pordefecto__ token when you do NOT have a validated own domain. The system will send from the generic domain (it does not require DNS/prior validation).
{
"RESP": "JSON",
"TIPOFIRMA": "BIOMETRICA",
"CANALESFIRMA": [
{"TIPO":"SMS","REMITENTE":"FIRMA","MENSAJE":"Firma: {{LINK}}"},
{"TIPO":"EMAIL","DOMINIO":"__pordefecto__","ASUNTOEMAIL":"Firma","MENSAJEEMAIL":"Click {{LINK}}"}
],
"FIRMANTES": [{"Nombre":"Juan","NIF":"00000000T","Telefono":"34600000001","Email":"j@a.com","Orden":1}],
"DOCUMENTOS": [{"Tipo":"PDF","Nombre":"Contrato","Contenido":"JVBERi0xLj...","Aceptacion":"SI","StampFirmaFirmante":"1,80,500,180,80,H"}]
}
3. Authorizations in 2 groups + contract
{
"RESP": "JSON",
"TIPOFIRMA": "BIOMETRICA",
"MENSAJEAUTORIZACION": "Antes de firmar revise NDA y RGPD.",
"CANALESFIRMA": [{"TIPO":"SMS","REMITENTE":"FIRMA","MENSAJE":"Firma: {{LINK}}"}],
"FIRMANTES": [{"Nombre":"Juan","NIF":"00000000T","Telefono":"34600000001","Email":"j@a.com","Orden":1}],
"DOCUMENTOS": [
{"Tipo":"PDF","Nombre":"NDA","Contenido":"JVBERi0xLj...","TipoDoc":"AUTORIZACION","GrupoAut":1},
{"Tipo":"PDF","Nombre":"RGPD","Contenido":"JVBERi0xLj...","TipoDoc":"AUTORIZACION","GrupoAut":2},
{"Tipo":"PDF","Nombre":"Contrato","Contenido":"JVBERi0xLj...","TipoDoc":"CONTRATO","Aceptacion":"SI","StampFirmaFirmante":"1,80,500,180,80,H"}
]
}
4. OTP via SMS and Email (validated own domain)
Reminder: the domain su-dominio.com must be validated in your Transactional Email panel. If it is not, replace the EMAIL block with {"TIPO":"EMAIL","DOMINIO":"__pordefecto__","ASUNTOEMAIL":"OTP","MENSAJEEMAIL":"Your code is {{CODE}}"} to use the generic domain.
{
"RESP": "JSON",
"TIPOFIRMA": "OTP",
"CANALESFIRMA": [{"TIPO":"SMS","REMITENTE":"FIRMA","MENSAJE":"Firma: {{LINK}}"}],
"CANALESOTP": [
{"TIPO":"SMS","REMITENTE":"FIRMA","MENSAJE":"Your code: {{CODE}}"},
{"TIPO":"EMAIL","DOMINIO":"su-dominio.com","REMITENTE":"otp@su-dominio.com","IDPLANTILLA":67890,"ASUNTOEMAIL":"OTP"}
],
"FIRMANTES": [{"Nombre":"Juan","NIF":"00000000T","Telefono":"34600000001","Email":"j@a.com","Orden":1}],
"DOCUMENTOS": [{"Tipo":"CHECKBOX","Texto":"Acepto","Inicial":"OFF","Final":"ON"}]
}
5. Multi-send with own variables
{
"RESP": "JSON",
"TIPOFIRMA": "BIOMETRICA",
"CANALESFIRMA": [{"TIPO":"SMS","REMITENTE":"FIRMA","MENSAJE":"Hello {{NOMBRE}}: {{LINK}}"}],
"ENVIOS": [
{"Firmantes":[{"Nombre":"Juan","NIF":"11111111H","Telefono":"34611111111","Email":"j@a.com","Orden":1}],"Variables":{"importe":"100€"}},
{"Firmantes":[{"Nombre":"Ana","NIF":"22222222J","Telefono":"34622222222","Email":"a@a.com","Orden":1}],"Variables":{"importe":"250€"}}
],
"DOCUMENTOS": [{"Tipo":"PLANTILLA","Plantilla":"1234-5678","Nombre":"Contrato","Aceptacion":"SI"}]
}
The response of example 5 will contain a Contratos field with 2 objects (one per contract created).
6. Sending on behalf of a client (CERTIFICACION)
An agency sends the contract on behalf of its client 'Inmobiliaria Cliente Final SL': the PDF certificate and the signing process show the client's identity and logo instead of the ones configured in the agency's account.
{
"RESP": "JSON",
"TIPOFIRMA": "BIOMETRICA",
"CANALESFIRMA": [{"TIPO":"SMS","REMITENTE":"FIRMA","MENSAJE":"Firma: {{LINK}}"}],
"CERTIFICACION": {
"EMPRESA": "Inmobiliaria Cliente Final SL",
"CIF": "B00000000",
"TELEFONO": "+34910000000",
"LOGO": "https://www.clientefinal.com/img/logo.svg"
},
"FIRMANTES": [{"Nombre":"Juan","NIF":"00000000T","Telefono":"34600000001","Email":"j@a.com","Orden":1}],
"DOCUMENTOS": [{"Tipo":"PLANTILLA","Plantilla":"1234-5678","Nombre":"Contrato","Aceptacion":"SI"}]
}