Ir al Panel →

Introducción

La API de Manyao permite integrar firma digital de documentos con validación biométrica y certificación blockchain. Usa OAuth 2.0 con client_credentials.

Base URLhttps://api.manyao.pe/v1
FormatoJSON
AuthBearer Token
🔑Autenticación/auth/
POST/auth/token
Generar access token

Genera un Bearer token usando tus credenciales. Soporta Basic Auth o body JSON.

Parámetros
ParámetroTipoDescripción
client_idstringReqTu API Key ID
client_secretstringReqTu API Key Secret
grant_typestringReqSiempre client_credentials
expires_inintegerOptSegundos de duración (default: 3600)
Request
curl -X POST 'https://api.manyao.pe/v1/auth/token' \
  -H 'Content-Type: application/json' \
  -d '{"client_id":"mk_live_xxx","client_secret":"ms_xxx","grant_type":"client_credentials"}'
Respuesta
{
  "success": true,
  "access_token": "a1b2c3d4e5f6...",
  "token_type": "Bearer",
  "expires_in": 3600
}
POST/auth/revoke
Revocar token
curl -X POST 'https://api.manyao.pe/v1/auth/revoke' \
  -H 'Authorization: Bearer {{token}}' \
  -d '{"token":"{{token}}"}'
GET/auth/verify
Verificar token actual
curl -X GET 'https://api.manyao.pe/v1/auth/verify' \
  -H 'Authorization: Bearer {{token}}'
📄Documentos/documents/
POST/documents
Crear documento para firma

Crea un documento y genera el enlace de firma. Soporta PDF, JSON, XML, URL, TEXT, IMAGE, OBJECT.

Parámetros
ParámetroTipoDescripción
titlestringReqTítulo del documento
content_typestringReqPDF, JSON, XML, URL, TEXT, IMAGE, OBJECT
content_hashstringReqSHA256(content_type + content_base64)
signersarrayReqFirmantes: [{dni, doc_type, email?}]
content_base64stringOptContenido en Base64 (PDF, imagen, texto, etc.)
initial_statusstringOptpending (QR, default) o draft (email)
expires_in_hoursintegerOptHoras de vigencia (default: 168)
callback_urlstringOptURL para webhook al completar
external_idstringOptID de referencia en tu sistema
Objeto signer: dni Req · doc_type Req (dni-pe, dni-pa, ci-pe) · email Opt
Request
curl -X POST 'https://api.manyao.pe/v1/documents' \
  -H 'Authorization: Bearer {{token}}' \
  -H 'Content-Type: application/json' \
  -d '{
    "title": "Contrato de Servicios",
    "content_type": "PDF",
    "content_base64": "JVBERi0xLjQ...",
    "content_hash": "sha256_del_contenido",
    "signers": [{"dni":"12345678","doc_type":"dni-pe"}],
    "callback_url": "https://tuapp.com/webhook"
  }'
Respuesta — 201
{
  "success": true,
  "document": {
    "id": "a1b2c3d4-e5f6-...",
    "title": "Contrato de Servicios",
    "status": "pending",
    "sign_url": "https://manyao.pe/05/?id=a1b2c3d4-...",
    "signers": [{"id":1,"dni":"12345678","status":"pending"}],
    "expires_at": "2026-03-25T12:00:00",
    "cost": 0.50
  }
}
GET/documents/{id}
Obtener estado del documento
curl -X GET 'https://api.manyao.pe/v1/documents/{{document_id}}' \
  -H 'Authorization: Bearer {{token}}'
{
  "success": true,
  "document": {
    "id": "a1b2c3d4-...",
    "title": "Contrato",
    "status": "signing",
    "signers_total": 2,
    "signers_completed": 1,
    "signers": [{"dni":"12345678","status":"completed","full_name":"Juan Perez","signed_at":"..."}]
  }
}
GET/documents
Listar documentos
curl -X GET 'https://api.manyao.pe/v1/documents?page=1&limit=20&status=completed' \
  -H 'Authorization: Bearer {{token}}'
POST/documents/{id}/signers
Agregar firmante
curl -X POST 'https://api.manyao.pe/v1/documents/{{document_id}}/signers' \
  -H 'Authorization: Bearer {{token}}' \
  -H 'Content-Type: application/json' \
  -d '{"dni":"12345678","doc_type":"dni-pe","email":"juan@empresa.com"}'
DELETE/documents/{id}/signers/{sId}
Eliminar firmante
curl -X DELETE 'https://api.manyao.pe/v1/documents/{{document_id}}/signers/42' \
  -H 'Authorization: Bearer {{token}}'
POST/documents/{id}/send
Enviar notificación email
curl -X POST 'https://api.manyao.pe/v1/documents/{{document_id}}/send' \
  -H 'Authorization: Bearer {{token}}'
POST/documents/{id}/close
Cerrar con firmas parciales
curl -X POST 'https://api.manyao.pe/v1/documents/{{document_id}}/close' \
  -H 'Authorization: Bearer {{token}}'
POST/documents/{id}/reopen
Reabrir documento
curl -X POST 'https://api.manyao.pe/v1/documents/{{document_id}}/reopen' \
  -H 'Authorization: Bearer {{token}}'
🏆Certificados/documents/{id}/certificate/
Disponible cuando status = completed. Incluye foto, firma, prueba de vida y blockchain.
GET/documents/{id}/certificate
Certificados de todos los firmantes
curl -X GET 'https://api.manyao.pe/v1/documents/{{document_id}}/certificate' \
  -H 'Authorization: Bearer {{token}}'
GET/documents/{id}/certificate/{sId}/image
Imagen PNG del certificado
curl -X GET 'https://api.manyao.pe/v1/documents/{{document_id}}/certificate/42/image' \
  -H 'Authorization: Bearer {{token}}' --output cert.png
GET/documents/{id}/certificate/{sId}/json
JSON de evidencia criptográfica
curl -X GET 'https://api.manyao.pe/v1/documents/{{document_id}}/certificate/42/json' \
  -H 'Authorization: Bearer {{token}}'
GET/documents/{id}/certificate/download
Descargar ZIP completo
curl -X GET 'https://api.manyao.pe/v1/documents/{{document_id}}/certificate/download' \
  -H 'Authorization: Bearer {{token}}' --output evidencia.zip
GET/documents/{id}/certificate/{sId}/verify
Link y QR de verificación
curl -X GET 'https://api.manyao.pe/v1/documents/{{document_id}}/certificate/42/verify' \
  -H 'Authorization: Bearer {{token}}'
🔐Sesiones de Acceso/sessions/
POST/sessions
Crear sesión biométrica
ParámetroTipoDescripción
doc_typestringReqdni-pe, dni-pa, ci-pe
doc_numberstringOptNúmero de documento a validar
callback_urlstringOptURL webhook al verificar
metadataobjectOptDatos de referencia
curl -X POST 'https://api.manyao.pe/v1/sessions' \
  -H 'Authorization: Bearer {{token}}' \
  -H 'Content-Type: application/json' \
  -d '{"doc_type":"dni-pe","callback_url":"https://tuapp.com/callback"}'
GET/sessions/{uuid}
Estado (polling, público)
curl -X GET 'https://api.manyao.pe/v1/sessions/{{session_uuid}}'
GET/sessions/{uuid}/result
Resultado completo (auth)
curl -X GET 'https://api.manyao.pe/v1/sessions/{{session_uuid}}/result' \
  -H 'Authorization: Bearer {{token}}'
GET/sessions
Listar sesiones
curl -X GET 'https://api.manyao.pe/v1/sessions?page=1&limit=20' \
  -H 'Authorization: Bearer {{token}}'

Códigos de Error

CódigoDescripciónSolución
400Bad RequestVerifica los parámetros
401UnauthorizedToken inválido o expirado
402Payment RequiredSaldo insuficiente
403ForbiddenIP o dominio no permitido
404Not FoundRecurso no encontrado
429Too Many RequestsRate limit excedido
500Internal ErrorContacta soporte
manyao.pe — Firma digital con validación biométrica