Build on FinDIGI

Premium developer portal for the full FinDIGI backend surface

Explore the full API catalog, real sandbox guidance, page-by-page and sub-page help, challenge journeys across Wallet Fiat and FinVault, and a backend-connected FinChat assistant in one place.

Backend routes

133

OpenAPI paths

116

Module groups

20

Docs Health

Status

Healthy

Route Count

133

Module Groups

20

OpenAPI Paths

116

Generated

2026-06-20T06:28:11.652Z

Sandbox Base URL

https://findigi-backend-production.up.railway.app

Testing Header

Always send this on sandbox requests:

x-findigi-is-test: true

Sandbox Guide

1

POST /api/auth/login

2

If prompted, complete /api/auth/login/2fa/verify

3

Call /api/auth/my-clients to select the workspace/client_id

4

Send Bearer token + x-findigi-is-test:true on sandbox requests

Use a test workspace/client and testnet mode for FX, FinVault, wallet transfer, and onramp challenge flows.

Safe for alpha testers

/api/auth/login/api/auth/me/api/auth/my-clients/api/fx/quote/api/fx/tickers/api/finvault/*/api/onramp/*/api/approvals/*/api/notifications/*

Copy auth snippet

Authorization: Bearer <jwt_token>
x-findigi-is-test: true

Application Help Center

This section explains the product page by page and sub-page by sub-page, with special guidance for company and B2B users who need a clean operational order.

New and returning users

Auth & Access

Use authentication pages to sign in, create an account, or recover access before onboarding begins.

Open

Recommended flow

1.Register or sign in
2.Complete 2FA if prompted
3.Continue to workspace selection
Page and sub-page breakdown

Login

Open

Sign in with credentials and complete 2FA if required before choosing a workspace.

Register

Open

Create a new user account before entering the workspace and onboarding flow.

Forgot Password

Open

Request a reset email if you cannot sign in with the current password.

Reset Password

Open

Finish the password reset flow with the token from the email.

New workspace setup

Onboarding

Use onboarding to choose an existing workspace or create and verify a new one before entering the app.

Open

Recommended flow

1.Choose existing workspace or create a new organization
2.Complete verification if required
3.Continue to the dashboard
Page and sub-page breakdown

Welcome

Open

Decide whether to create a new organization or select an existing workspace.

Select Workspace

Open

Choose the exact client workspace to manage and follow the readiness path.

Create Organization

Open

Create a new company or individual workspace before verification and setup.

Verification Required

Open

Complete verification when protected banking routes are still locked for the workspace or profile.

All users

Dashboard

Start here to understand balances, pending approvals, and which module the team should open next.

Open

Recommended flow

1.Review balances and alerts
2.Check pending approvals
3.Open the next working module
Page and sub-page breakdown

Overview cards

Open

See fiat balance, crypto balance, pending approvals, and recent business activity in one place.

Unified history view

Open

Review fiat and FinVault transaction history without jumping between multiple modules.

New users and workspace admins

Settings

Usually the best first stop after account creation because it prepares the workspace, saved destinations, and security settings.

Open

Recommended flow

1.Complete profile and workspace setup
2.Register banks, cards, and address book entries
3.Move to wallets and approvals
Page and sub-page breakdown

User Settings

Open

Manage profile details, notifications, and your copyable Findigi User ID for approval assignment.

Workspace Settings

Open

Review workspace profile, client type, and verification readiness for business operations.

Bank Register / Card Register / Address Book

Open

Save payout destinations early so operational flows are faster and less error-prone later.

Operations and finance teams

Fiat Wallets

Create and manage the country-based operating wallets that fund transfers, payouts, and day-to-day money movement.

Open

Recommended flow

1.Create the correct country wallet
2.Open the wallet detail page
3.Choose the right transfer flow
Page and sub-page breakdown

Wallet detail

Open

Review wallet balance, top up the wallet, and open the correct payout or transfer path.

Transfer to Bank

Open

Send funds from the selected wallet to a bank beneficiary using supported local or crossborder corridors.

Transfer to Wallet

Open

Use a wallet-address destination flow when the receiver is not a bank account.

Card to Bank

Open

Use a saved card as the source and route funds to a bank beneficiary.

Batch Transfer & Schedule

Open

Create bulk bank payouts through saved beneficiaries, manual rows, or Excel-ready imports.

Company / B2B reviewers

Approvals

Use this page after setup is ready so the business can separate who creates requests and who approves them.

Open

Recommended flow

1.Finish Settings and wallet setup first
2.Assign checker / approver / super approver roles
3.Monitor the approval queue daily
Page and sub-page breakdown

Approval Settings

Open

Enable maker-checker rules and configure policy thresholds for company workspaces.

Approval inbox

Open

Review items waiting for checker or approver action and complete the next business step safely.

Crypto treasury and hybrid finance teams

FinVault

Use FinVault for wallet connectivity, real testnet crypto actions, and receipt-driven blockchain operations.

Open

Recommended flow

1.Choose wallet model and network
2.Run action by use case
3.Verify receipt hashes and explorer links
Page and sub-page breakdown

Wallets tab

Open

Connect or register custodial and non-custodial wallets for the active workspace.

Portfolio tab

Open

Review balances and the current crypto asset view for the connected wallets.

Actions tab

Open

Run onchain (receive/transfer), onramp, offramp, swap (same network), and crosschain (different network) flows.

History tab

Open

Inspect receipts, explorer links, and approval-related transaction details for audit or troubleshooting.

API Challenge Hub

Login & Select Workspace

Authenticate, complete 2FA if needed, and bootstrap the workspace/client context.

Easy
POST /api/auth/loginPOST /api/auth/login/2fa/verifyGET /api/auth/my-clients
View challenge steps
1.Login with test credentials
2.Complete optional 2FA challenge
3.Pick the correct workspace/client_id
Start Challenge

Get Live FX Quote

Test quote and ticker retrieval with sandbox-safe FX endpoints.

Easy
GET /api/fx/quoteGET /api/fx/tickers
View challenge steps
1.Request a quote
2.Compare with live tickers
3.Validate the test header guidance
Start Challenge

Explore Fiat Wallet

Inspect wallet list, balances, accounts, and history for the fiat wallet domain.

Medium
GET /api/walletsGET /api/wallets/:id/balancesGET /api/wallets/:id/history
View challenge steps
1.Fetch wallet list
2.Open a wallet detail
3.Inspect balances and history
Start Challenge

Make Internal Wallet Transfer

Walk through source selection, destination selection, and transfer status observation.

Medium
POST /api/wallets/transfersGET /api/wallets/transfers/:id
View challenge steps
1.Choose source + destination wallet
2.Submit transfer payload
3.Track pending/completed/approval state
Start Challenge

Transfer to Bank

Model the bank payout / fiat instruction path and review operational status.

Medium
GET /api/settings/banksGET /api/cards
View challenge steps
1.Inspect recipients/bank config
2.Prepare payout flow
3.Review status and history
Start Challenge

Transfer to Wallet / Onramp

Create a wallet-destination funding request and observe routing behaviour.

Medium
POST /api/finvault/onrampPOST /api/finvault/onramp/quote
View challenge steps
1.Request a quote
2.Create the onramp flow
3.Inspect resulting history
Start Challenge

FinVault Onramp Journey

Quote, create, and validate a FinVault onramp flow with testnet-aware context.

Advanced
GET /api/finvault/onramp/quotePOST /api/finvault/onrampGET /api/finvault/transactions
View challenge steps
1.Get quote
2.Create onramp request
3.Confirm the new transaction appears
Start Challenge

FinVault Offramp Journey

Run the reverse path for liquidating / exiting through the FinVault service.

Advanced
GET /api/finvault/offramp/quotePOST /api/finvault/offrampGET /api/finvault/transactions
View challenge steps
1.Obtain an offramp quote
2.Submit the offramp request
3.Verify status changes in history
Start Challenge

FinVault Swap / Bridge Journey

Exercise swap and bridge flows and then inspect the resulting transaction trail.

Advanced
POST /api/finvault/swapsPOST /api/finvault/bridgesGET /api/finvault/transactions
View challenge steps
1.Create a swap
2.Create a bridge
3.Track resulting transaction history
Start Challenge

Approval Challenge

Simulate maker-checker actions and validate approve/reject outcomes for company mode.

Advanced
GET /api/approvalsPOST /api/approvals/:id/approvePOST /api/approvals/:id/reject
View challenge steps
1.Create or inspect approval item
2.Review queue
3.Approve or reject and verify final state
Start Challenge

Batch Transfer Challenge

Create a batch payout, inspect items, and validate approval dependencies.

Advanced
POST /api/batch-transfersGET /api/batch-transfers/:id/itemsPOST /api/batch-transfers/:id/execute-now
View challenge steps
1.Create a batch
2.Inspect line items
3.Execute or route to approval
Start Challenge

Notifications & Operational Visibility

Monitor unread counts and event visibility while running sandbox journeys.

Easy
GET /api/notificationsGET /api/notifications/unread-countPOST /api/notifications/:id/read
View challenge steps
1.Fetch notification list
2.Check unread count
3.Mark operational events as read
Start Challenge

Endpoint Explorer

Showing 133 endpoints across 20 modules.

Analytics

Dashboard charts and summaries.

GETBEARERAnalytics

/api/analytics/cashflow

GET analytics cashflow for Analytics

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERAnalytics

/api/analytics/liquidity-history

GET analytics liquidity-history for Analytics

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERAnalytics

/api/analytics/summary

GET analytics summary for Analytics

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Approvals

Maker-checker approval lifecycle and pending actions.

GETBEARERApprovals

/api/approvals

GET approvals for Approvals

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERApprovals

/api/approvals

POST approvals for Approvals

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERApprovals

/api/approvals/:id

GET approvals :id for Approvals

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERApprovals

/api/approvals/:id/approve

POST :id approve for Approvals

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERApprovals

/api/approvals/:id/reject

POST :id reject for Approvals

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Auth

Authentication, session issuance, and workspace bootstrap.

POSTPUBLICAuth

/api/auth/forgot-password

POST auth forgot-password for Auth

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
POSTPUBLICAuth

/api/auth/login

POST auth login for Auth

Sample request

{
  "headers": {
    "Content-Type": "application/json"
  },
  "body": {
    "email": "alpha.tester@findigi.local",
    "password": "<password>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
POSTPUBLICAuth

/api/auth/login/2fa/resend

POST 2fa resend for Auth

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
POSTPUBLICAuth

/api/auth/login/2fa/verify

POST 2fa verify for Auth

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
GETBEARERAuth

/api/auth/me

GET auth me for Auth

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERAuth

/api/auth/my-clients

GET auth my-clients for Auth

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTPUBLICAuth

/api/auth/register

POST auth register for Auth

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
POSTPUBLICAuth

/api/auth/reset-password

POST auth reset-password for Auth

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Batch Transfer

Bulk payout and approval-aware batch transfer flows.

GETBEARERBatch Transfer

/api/batch-transfers

GET batch-transfers for Batch Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "source_wallet_id": "<wallet_id>",
    "execution_mode": "immediate",
    "items": [
      {
        "beneficiary_id": "<beneficiary_id>",
        "amount": "100000"
      }
    ]
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERBatch Transfer

/api/batch-transfers

POST batch-transfers for Batch Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "source_wallet_id": "<wallet_id>",
    "execution_mode": "immediate",
    "items": [
      {
        "beneficiary_id": "<beneficiary_id>",
        "amount": "100000"
      }
    ]
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERBatch Transfer

/api/batch-transfers/:id

GET batch-transfers :id for Batch Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERBatch Transfer

/api/batch-transfers/:id/cancel

POST :id cancel for Batch Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERBatch Transfer

/api/batch-transfers/:id/execute-now

POST :id execute-now for Batch Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERBatch Transfer

/api/batch-transfers/:id/items

GET :id items for Batch Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Cards

GETBEARERCards

/api/cards

GET cards for Cards

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Chains

GETPUBLICChains

/api/chains

GET chains for Chains

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
GETPUBLICChains

/api/chains/:code/tokens

GET :code tokens for Chains

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

FinVault

FinVault wallets, onramp/offramp, swaps, bridges, and history.

GETBEARERFinVault

/api/finvault/assets

GET finvault assets for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/bridges

POST finvault bridges for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "source_wallet_id": "<source_wallet_id>",
    "destination_wallet_id": "<destination_wallet_id>",
    "source_asset_id": "<source_asset_id>",
    "destination_asset_id": "<destination_asset_id>",
    "amount": "10"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
GETBEARERFinVault

/api/finvault/custodial/options

GET custodial options for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/custodial/preview

POST custodial preview for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/custodial/wallets

POST custodial wallets for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/offramp

POST finvault offramp for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/offramp/quote

POST offramp quote for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "wallet_id": "<finvault_wallet_id>",
    "source_asset_id": "<finvault_asset_id>",
    "amount": "1.25",
    "fiat_currency": "IDR"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/onchain

POST finvault onchain for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/onramp

POST finvault onramp for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "wallet_id": "<finvault_wallet_id>",
    "destination_asset_id": "<finvault_asset_id>",
    "fiat_amount": "50000",
    "fiat_currency": "IDR",
    "description": "Public-site testnet onramp"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/onramp/quote

POST onramp quote for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "wallet_id": "<finvault_wallet_id>",
    "destination_asset_id": "<finvault_asset_id>",
    "fiat_amount": "50000",
    "fiat_currency": "IDR"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/swaps

POST finvault swaps for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "wallet_id": "<finvault_wallet_id>",
    "source_asset_id": "<source_asset_id>",
    "destination_asset_id": "<destination_asset_id>",
    "amount": "10"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
GETBEARERFinVault

/api/finvault/transactions

GET finvault transactions for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
GETBEARERFinVault

/api/finvault/transactions/:transactionId

GET transactions :transactionId for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
GETBEARERFinVault

/api/finvault/wallets

GET finvault wallets for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/wallets

POST finvault wallets for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
GETBEARERFinVault

/api/finvault/wallets/:walletId

GET wallets :walletId for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
GETBEARERFinVault

/api/finvault/wallets/:walletId/balances

GET :walletId balances for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/wallets/:walletId/make-primary

POST :walletId make-primary for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.
POSTBEARERFinVault

/api/finvault/wallets/:walletId/sync

POST :walletId sync for FinVault

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
  • Send x-findigi-is-test: true for sandbox/testnet flows.
  • Company/B2B clients may return awaiting_approval depending on approval_mode.

FX / Tickers

Reference FX quotes and dashboard ticker feed.

GETPUBLICFX / Tickers

/api/fx/quote

Get a reference FX quote for a specific pair.

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "query": {
    "base": "USD",
    "quote": "IDR",
    "ttl": 15
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Ticker endpoints return freshness metadata so FE can show the latest safe snapshot.
GETPUBLICFX / Tickers

/api/fx/tickers

Fetch the dashboard FX ticker feed with freshness and 12-hour trend metadata.

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "query": {
    "pairs": "USD/IDR,USDT/IDR,USDC/IDR,USD/SGD,USDT/SGD,USDC/SGD",
    "min_fresh_seconds": 15,
    "change_window_hours": 12
  }
}

Sample success

{
  "ok": true,
  "change_window_hours": 12,
  "items": [
    {
      "pair": "USD/IDR",
      "rate": "17097.0000000000",
      "previous_rate": "17010.0000000000",
      "change_value": "87.0000000000",
      "change_pct": "0.5115",
      "trend_direction": "up",
      "baseline_quoted_at": "2026-04-10T18:00:00.000Z",
      "comparison_available": true,
      "age_seconds": 4,
      "is_expired": false,
      "is_fresh": true
    }
  ]
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Ticker endpoints return freshness metadata so FE can show the latest safe snapshot.

Ledger

GETBEARERLedger

/api/ledger/accounts

GET ledger accounts for Ledger

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERLedger

/api/ledger/journals

GET ledger journals for Ledger

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERLedger

/api/ledger/journals

POST ledger journals for Ledger

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERLedger

/api/ledger/journals/:id

GET journals :id for Ledger

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERLedger

/api/ledger/journals/:id/post

POST :id post for Ledger

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

My Clients

Client onboarding and workspace membership surface.

GETBEARERMy Clients

/api/clients

GET clients for My Clients

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERMy Clients

/api/clients

POST clients for My Clients

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERMy Clients

/api/clients/:id

GET clients :id for My Clients

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERMy Clients

/api/clients/:id/onboard

POST :id onboard for My Clients

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERMy Clients

/api/clients/:id/users

GET :id users for My Clients

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERMy Clients

/api/clients/:id/users

POST :id users for My Clients

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERMy Clients

/api/clients/onboard

POST clients onboard for My Clients

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Notifications

Bell and unread notification feed.

GETBEARERNotifications

/api/notifications

GET notifications for Notifications

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERNotifications

/api/notifications/:id/read

POST :id read for Notifications

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERNotifications

/api/notifications/unread-count

GET notifications unread-count for Notifications

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Providers

POSTBEARERProviders

/api/providers/accounts

POST providers accounts for Providers

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERProviders

/api/providers/accounts/:client_id

GET accounts :client_id for Providers

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERProviders

/api/providers/xendit/:client_id

GET xendit :client_id for Providers

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERProviders

/api/providers/xendit/subaccount

POST xendit subaccount for Providers

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERProviders

/api/providers/xendit/webhook

POST xendit webhook for Providers

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Public Docs

Public landing-site docs and FinChat support.

GETPUBLICPublic Docs

/api/docs/health

Docs manifest health and sandbox metadata.

Sample request

{
  "headers": {}
}

Sample success

{
  "ok": true,
  "route_count": 50,
  "openapi_url": "/api/openapi.json"
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
GETPUBLICPublic Docs

/api/docs/manifest

Structured docs manifest and FE navigation payload.

Sample request

{
  "headers": {}
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
GETPUBLICPublic Docs

/api/docs/postman

Download a generated Postman collection for the current API surface.

Sample request

{
  "headers": {}
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
GETPUBLICPublic Docs

/api/docs/postman.json

Alternate Postman collection endpoint for public docs tooling.

Sample request

{
  "headers": {}
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}
POSTPUBLICPublic Docs

/api/finchat

Ask FinChat about FinDIGI products, docs, roadmap, and testing.

Sample request

{
  "headers": {
    "x-findigi-is-test": "true"
  },
  "body": {
    "message": "How do I test the API?",
    "history": [
      {
        "role": "user",
        "content": "Show me the sandbox flow."
      }
    ]
  }
}

Sample success

{
  "answer": "Use the Developers page and send the x-findigi-is-test header for sandbox calls.",
  "actions": [
    {
      "label": "Open Developers",
      "href": "/developers"
    },
    {
      "label": "Open Services",
      "href": "/services"
    }
  ]
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • message is required; history is optional.
  • Safe fallback response is returned if no specialized intent is detected.
GETPUBLICPublic Docs

/api/openapi.json

Fetch the generated OpenAPI spec for the current backend surface.

Sample request

{
  "headers": {}
}

Sample success

{
  "openapi": "3.1.0",
  "info": {
    "title": "finDIGI Backend API",
    "version": "0.1.0"
  }
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Use this as the source of truth for FE docs navigation and endpoint explorer generation.

Settings / Security / 2FA

Security, 2FA, workspace members, saved cards, and address book.

GETBEARERSettings / Security / 2FA

/api/settings/address-book

GET settings address-book for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/address-book

POST settings address-book for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
DELETEBEARERSettings / Security / 2FA

/api/settings/address-book/:entryId

DELETE address-book :entryId for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
PATCHBEARERSettings / Security / 2FA

/api/settings/address-book/:entryId

PATCH address-book :entryId for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/approval

GET settings approval for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
PATCHBEARERSettings / Security / 2FA

/api/settings/approval

PATCH settings approval for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/approval/assignments

POST approval assignments for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
DELETEBEARERSettings / Security / 2FA

/api/settings/approval/assignments/:assignmentId

DELETE assignments :assignmentId for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/approval/assignments/:assignmentId/accept

POST :assignmentId accept for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/approval/assignments/:assignmentId/decline

POST :assignmentId decline for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/approval/assignments/pending

GET assignments pending for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/approval/members

GET approval members for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/banks

GET settings banks for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/banks

POST settings banks for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
DELETEBEARERSettings / Security / 2FA

/api/settings/banks/:bankId

DELETE banks :bankId for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
PATCHBEARERSettings / Security / 2FA

/api/settings/banks/:bankId

PATCH banks :bankId for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/cards

GET settings cards for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/cards

POST settings cards for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
DELETEBEARERSettings / Security / 2FA

/api/settings/cards/:cardId

DELETE cards :cardId for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
PATCHBEARERSettings / Security / 2FA

/api/settings/cards/:cardId

PATCH cards :cardId for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
PATCHBEARERSettings / Security / 2FA

/api/settings/client

PATCH settings client for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/fees

GET settings fees for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
PATCHBEARERSettings / Security / 2FA

/api/settings/fees

PATCH settings fees for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/me

GET settings me for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERSettings / Security / 2FA

/api/settings/security

GET settings security for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/security/2fa/confirm

POST 2fa confirm for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/security/2fa/disable/confirm

POST disable confirm for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/security/2fa/disable/start

POST disable start for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERSettings / Security / 2FA

/api/settings/security/2fa/start

POST 2fa start for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
PATCHBEARERSettings / Security / 2FA

/api/settings/user

PATCH settings user for Settings / Security / 2FA

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Transactions

GETBEARERTransactions

/api/transactions

GET transactions for Transactions

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Transfer to Bank / Card to Bank

Fiat payout, transfer-to-bank, and settlement style operational flows.

POSTBEARERTransfer to Bank / Card to Bank

/api/fiat/card-to-bank

POST fiat card-to-bank for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERTransfer to Bank / Card to Bank

/api/fiat/card-to-bank/:id

GET card-to-bank :id for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERTransfer to Bank / Card to Bank

/api/fiat/card-to-bank/quote

POST card-to-bank quote for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERTransfer to Bank / Card to Bank

/api/fiat/instructions

GET fiat instructions for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERTransfer to Bank / Card to Bank

/api/fiat/instructions/:id

GET instructions :id for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERTransfer to Bank / Card to Bank

/api/fiat/payin

POST fiat payin for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERTransfer to Bank / Card to Bank

/api/fiat/payout

POST fiat payout for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERTransfer to Bank / Card to Bank

/api/fiat/transfers-to-bank

POST fiat transfers-to-bank for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERTransfer to Bank / Card to Bank

/api/fiat/transfers-to-bank/:id

GET transfers-to-bank :id for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERTransfer to Bank / Card to Bank

/api/fiat/transfers-to-bank/quote

POST transfers-to-bank quote for Transfer to Bank / Card to Bank

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Transfer to Wallet

Transfer-to-wallet / payin-style request surface.

POSTBEARERTransfer to Wallet

/api/onramp/batches/execute

POST batches execute for Transfer to Wallet

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERTransfer to Wallet

/api/onramp/requests

GET onramp requests for Transfer to Wallet

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "source_wallet_id": "<fiat_wallet_id>",
    "amount": "100000",
    "source_fiat_iso": "IDR",
    "destination": {
      "wallet_address": "0x1111111111111111111111111111111111111111",
      "network": "POLYGON",
      "asset_code": "USDT"
    }
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERTransfer to Wallet

/api/onramp/requests

POST onramp requests for Transfer to Wallet

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "source_wallet_id": "<fiat_wallet_id>",
    "amount": "100000",
    "source_fiat_iso": "IDR",
    "destination": {
      "wallet_address": "0x1111111111111111111111111111111111111111",
      "network": "POLYGON",
      "asset_code": "USDT"
    }
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERTransfer to Wallet

/api/onramp/requests/:id

GET requests :id for Transfer to Wallet

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Users

POSTBEARERUsers

/api/users

POST users for Users

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Verification

Operational verification for B2C and B2B workspaces.

POSTBEARERVerification

/api/verification/clients/:client_id/start

POST :client_id start for Verification

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERVerification

/api/verification/clients/:client_id/submit

POST :client_id submit for Verification

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERVerification

/api/verification/me

GET verification me for Verification

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERVerification

/api/verification/user/start

POST user start for Verification

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERVerification

/api/verification/user/submit

POST user submit for Verification

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

Wallet Transfer

Fiat wallet management, balances, history, and internal wallet transfers.

GETBEARERWallet Transfer

/api/wallets

GET wallets for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERWallet Transfer

/api/wallets

POST wallets for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERWallet Transfer

/api/wallets/:id

GET wallets :id for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERWallet Transfer

/api/wallets/:id/accounts

GET :id accounts for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERWallet Transfer

/api/wallets/:id/accounts

POST :id accounts for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERWallet Transfer

/api/wallets/:id/balances

GET :id balances for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERWallet Transfer

/api/wallets/:id/history

GET :id history for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERWallet Transfer

/api/wallets/:id/make-primary

POST :id make-primary for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
POSTBEARERWallet Transfer

/api/wallets/transfers

POST wallets transfers for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  },
  "body": {
    "client_id": "<workspace_client_id>",
    "source_wallet_id": "<source_wallet_id>",
    "destination_wallet_id": "<destination_wallet_id>",
    "amount": "100000",
    "description": "Internal wallet transfer"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.
GETBEARERWallet Transfer

/api/wallets/transfers/:id

GET transfers :id for Wallet Transfer

Sample request

{
  "headers": {
    "Authorization": "Bearer <jwt_token>",
    "x-findigi-is-test": "true"
  }
}

Sample success

{
  "ok": true
}

Sample error

{
  "error": "VALIDATION_ERROR",
  "message": "Required input is missing or invalid."
}

Notes

  • Requires a valid Bearer JWT and, for workspace flows, a client/workspace membership.

FinChat Public Assistant

FinChat is available on this page as the floating assistant. It uses `POST /api/finchat`, supports starter prompts, loading states, CTA actions, and graceful fallback handling.

OpenAPI + Postman Tools