IDRX Onboarding API

Onboard users and manage their bank accounts.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/idrx-onboarding-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

idrx-onboarding-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: IDRX Onboarding API
  version: '1.0'
  description: IDRX is a stablecoin pegged 1:1 to the Indonesian Rupiah (IDR). This REST API lets business (organization) accounts onboard users, manage bank accounts, and process mint (fiat IDR -> IDRX / USDT on-chain), redeem (IDRX -> fiat IDR to a bank account), and bridge (move IDRX across supported EVM/Solana chains) transactions, plus query rates, fees, bank methods, and transaction history. All requests are authenticated with an API key plus an HMAC-SHA256 request signature. A custom `User-Agent` header is required (generic agents are blocked at the edge with HTTP 403 / Cloudflare 1010).
  contact:
    name: IDRX Support
    email: support@idrx.co
    url: https://docs.idrx.co
  x-apievangelist-generated: '2026-07-19'
  x-apievangelist-method: searched
  x-apievangelist-source: https://docs.idrx.co/llms.txt
servers:
- url: https://idrx.co
  description: Production
security:
- idrxApiKey: []
tags:
- name: Onboarding
  description: Onboard users and manage their bank accounts.
paths:
  /api/auth/generate-api-key:
    post:
      operationId: generateApiKey
      tags:
      - Onboarding
      summary: Generate an API key
      description: Issue an API key/secret pair for an account. Store the secret securely; it is used to sign requests.
      responses:
        '201':
          description: API key issued.
  /api/auth/onboarding:
    post:
      operationId: onboardUser
      tags:
      - Onboarding
      summary: Onboard a new user
      description: Used by an organization to onboard a new user. Accounts registered this way skip part of the KYC process. Accepts `multipart/form-data`.
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              type: object
              required:
              - email
              - fullname
              - address
              - idNumber
              - idFile
              properties:
                email:
                  type: string
                  format: email
                fullname:
                  type: string
                address:
                  type: string
                idNumber:
                  type: string
                idFile:
                  type: string
                  format: binary
                  description: Image of the user ID (jpeg, png, jpg, webp; 256x256 to 4096x4096).
      responses:
        '201':
          description: User onboarded.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 201
                  message:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      id:
                        type: integer
                      fullname:
                        type: string
                      createdAt:
                        type: string
                        format: date-time
                      apiKey:
                        type: string
                      apiSecret:
                        type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
  /api/auth/members:
    get:
      operationId: getMembers
      tags:
      - Onboarding
      summary: Get members
      description: Get info about the members registered under the organization account.
      responses:
        '200':
          description: Member list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: integer
                        email:
                          type: string
                          format: email
                        createdAt:
                          type: string
                          format: date-time
                        fullname:
                          type: string
                        ApiKeys:
                          type: array
                          items:
                            type: object
                            properties:
                              apiKey:
                                type: string
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/auth/add-bank-account:
    post:
      operationId: addBankAccount
      tags:
      - Onboarding
      summary: Add a bank account
      description: Add a new bank account. A deposit wallet address associated with the bank account is also created; users can send IDRX to that address to redeem to the bank account.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - bankAccountNumber
              - bankCode
              properties:
                bankAccountNumber:
                  type: string
                bankCode:
                  type: string
                  description: Bank code from GET /api/transaction/method.
      responses:
        '201':
          description: Bank account added.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAccountEnvelope'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/auth/get-bank-accounts:
    get:
      operationId: getBankAccounts
      tags:
      - Onboarding
      summary: Get bank accounts
      description: List the bank accounts registered under the account.
      responses:
        '200':
          description: Bank account list.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                  message:
                    type: string
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/BankAccount'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /api/auth/delete-bank-account/{bankId}:
    delete:
      operationId: deleteBankAccount
      tags:
      - Onboarding
      summary: Delete a bank account
      parameters:
      - name: bankId
        in: path
        required: true
        schema:
          type: integer
      responses:
        '200':
          description: Bank account deleted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  statusCode:
                    type: integer
                    example: 200
                  message:
                    type: string
                    example: deleted
                  data:
                    type: 'null'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  responses:
    Forbidden:
      description: Blocked User-Agent — set a custom User-Agent like my-app/1.0 (Cloudflare 1010).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Bad signature or timestamp drift — recompute signature and sync clock (NTP).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Invalid parameter — check param types and limits.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    BankAccount:
      type: object
      properties:
        id:
          type: integer
        userId:
          type: integer
        bankAccountNumber:
          type: string
        bankAccountName:
          type: string
        bankAccountNumberHash:
          type:
          - string
          - 'null'
        bankCode:
          type: string
        bankName:
          type: string
        maxAmountTransfer:
          type: string
        deleted:
          type: boolean
        DepositWalletAddress:
          type: object
          properties:
            walletAddress:
              type: string
            createdAt:
              type: string
              format: date-time
    BankAccountEnvelope:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        data:
          $ref: '#/components/schemas/BankAccount'
    Error:
      type: object
      properties:
        statusCode:
          type: integer
        message:
          type: string
        data:
          type: 'null'
  securitySchemes:
    idrxApiKey:
      type: apiKey
      in: header
      name: idrx-api-key
      description: API key issued by IDRX. Each request must also carry `idrx-api-sig` (an HMAC-SHA256 signature) and `idrx-api-ts` (Unix ms timestamp), plus a custom `User-Agent`. Signature = HMAC-SHA256(secret, METHOD + ":" + PATH + ":" + SHA256(body) + ":" + timestamp).