Skip to main content
POST
https://sandbox.finhub.cloud
/
api
/
v2.1
/
fintrans
/
{accountId}
/
types
/
{operationType}
/
consents
Transaction Approvals API
curl --request POST \
  --url https://sandbox.finhub.cloud/api/v2.1/fintrans/{accountId}/types/{operationType}/consents \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --header 'X-Tenant-ID: <x-tenant-id>' \
  --data '
{
  "orderId": "<string>",
  "requiredSignatures": 123,
  "approvers": [
    {}
  ],
  "signature": "<string>",
  "signatureType": "<string>"
}
'
{
  "success": true,
  "data": {
    "consentId": "consent_12345",
    "orderId": "ord_67890",
    "accountId": "acc_12345",
    "operationType": "transfer",
    "status": "PENDING_SIGNATURES",
    "requiredSignatures": 2,
    "collectedSignatures": 0,
    "approvers": ["user_001", "user_002", "user_003"],
    "expiresAt": "2024-01-16T10:30:00Z",
    "createdAt": "2024-01-15T10:30:00Z"
  }
}

Transaction Approvals API

APIs for managing transaction approvals, multi-signature consents, and authorization workflows.
Base URL: https://sandbox.finhub.cloud/api/v2.1/fintrans/{accountId}/types/{operationType}
For complete details on authentication and headers, refer to the Standard HTTP Headers reference documentation.

Approval Workflow

1

Create Consent

Initiate approval request for a transaction
2

Collect Signatures

Gather required signatures from approvers
3

Execute

Transaction executes when all required signatures collected

Creates an approval consent request for a transaction that requires authorization.

Request

accountId
string
required
Account identifier
operationType
string
required
Operation type (transfer, withdraw, etc.)
Authorization
string
required
Bearer token for authentication
X-Tenant-ID
string
required
Tenant identifier
orderId
string
required
Order ID requiring approval
requiredSignatures
integer
Number of signatures required (default based on amount/policy)
approvers
array
List of user IDs who can approve

Code Examples

curl -X POST "https://sandbox.finhub.cloud/api/v2.1/fintrans/acc_12345/types/transfer/consents" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Tenant-ID: YOUR_TENANT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "orderId": "ord_67890",
    "requiredSignatures": 2,
    "approvers": ["user_001", "user_002", "user_003"]
  }'
{
  "success": true,
  "data": {
    "consentId": "consent_12345",
    "orderId": "ord_67890",
    "accountId": "acc_12345",
    "operationType": "transfer",
    "status": "PENDING_SIGNATURES",
    "requiredSignatures": 2,
    "collectedSignatures": 0,
    "approvers": ["user_001", "user_002", "user_003"],
    "expiresAt": "2024-01-16T10:30:00Z",
    "createdAt": "2024-01-15T10:30:00Z"
  }
}

Get Pending Consents

Retrieves all pending consent requests awaiting signatures.

Request

accountId
string
required
Account identifier

Code Examples

curl -X GET "https://sandbox.finhub.cloud/api/v2.1/fintrans/acc_12345/types/transfer/consents/pending" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Tenant-ID: YOUR_TENANT_ID"
{
  "success": true,
  "data": {
    "consents": [
      {
        "consentId": "consent_12345",
        "orderId": "ord_67890",
        "operationType": "transfer",
        "amount": {
          "value": 50000.00,
          "currency": "EUR"
        },
        "status": "PENDING_SIGNATURES",
        "requiredSignatures": 2,
        "collectedSignatures": 1,
        "pendingApprovers": ["user_002", "user_003"],
        "expiresAt": "2024-01-16T10:30:00Z"
      },
      {
        "consentId": "consent_12346",
        "orderId": "ord_67891",
        "operationType": "withdraw",
        "amount": {
          "value": 25000.00,
          "currency": "EUR"
        },
        "status": "PENDING_SIGNATURES",
        "requiredSignatures": 1,
        "collectedSignatures": 0,
        "pendingApprovers": ["user_001"],
        "expiresAt": "2024-01-16T11:00:00Z"
      }
    ]
  }
}

Adds a signature to an approval consent request.

Request

accountId
string
required
Account identifier
Consent identifier
signature
string
required
Digital signature or OTP code
signatureType
string
Type of signature: OTP, BIOMETRIC, DIGITAL

Code Examples

curl -X POST "https://sandbox.finhub.cloud/api/v2.1/fintrans/acc_12345/types/transfer/consents/consent_12345/sign" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Tenant-ID: YOUR_TENANT_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "signature": "123456",
    "signatureType": "OTP"
  }'
{
  "success": true,
  "data": {
    "consentId": "consent_12345",
    "status": "PENDING_SIGNATURES",
    "requiredSignatures": 2,
    "collectedSignatures": 1,
    "signatureAdded": {
      "signerId": "user_001",
      "signedAt": "2024-01-15T10:45:00Z",
      "signatureType": "OTP"
    },
    "remainingApprovers": ["user_002", "user_003"]
  }
}

Retrieves all signatures collected for a consent request.

Code Examples

curl -X GET "https://sandbox.finhub.cloud/api/v2.1/fintrans/acc_12345/types/transfer/consents/consent_12345/signatures" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
  -H "X-Tenant-ID: YOUR_TENANT_ID"
{
  "success": true,
  "data": {
    "consentId": "consent_12345",
    "signatures": [
      {
        "signatureId": "sig_001",
        "signerId": "user_001",
        "signerName": "John Doe",
        "signerRole": "APPROVER",
        "signatureType": "OTP",
        "signedAt": "2024-01-15T10:45:00Z"
      },
      {
        "signatureId": "sig_002",
        "signerId": "user_002",
        "signerName": "Jane Smith",
        "signerRole": "ADMIN",
        "signatureType": "BIOMETRIC",
        "signedAt": "2024-01-15T11:00:00Z"
      }
    ],
    "requiredSignatures": 2,
    "status": "FULLY_SIGNED"
  }
}

PENDING_SIGNATURES

Awaiting required signatures

FULLY_SIGNED

All signatures collected

EXPIRED

Consent request expired

CANCELLED

Consent was cancelled

Signature Types

TypeDescription
OTPOne-time password via SMS/Email
BIOMETRICFingerprint or face recognition
DIGITALDigital certificate signature
PINPersonal identification number

Response Codes

CodeDescription
200Request successful
400Invalid signature or request
401Unauthorized
403User not authorized to sign
404Consent not found
409Already signed by this user
410Consent expired
500Internal server error