ENVIRONMENT STAG / PRODLAYOUT Double ColumnLANGUAGE cURL
Request Sandbox Key
Browse documentation
Medici Bank API · Rufus BaaS API (v2.1)

Derived from Postman. For evaluation only — subject to onboarding, compliance approval, and sandbox access.

Overview

Welcome to the Rufus API

The Rufus BaaS API is a fully RESTful API set. Our API uses standard HTTP response codes, authentication, and verbs, and delivers JSON responses for all calls.

Rufus is Medici Bank’s banking-as-a-service platform — an API designed to build on the bank’s core strengths while enabling new digital innovation. In this documentation, references to MB are shorthand for Medici Bank.

The Rufus API allows clients to:

  • Create & Manage Customers
  • Create & Manage Customer Accounts and Balances
  • View Customer Account Transactions
  • Instantaneously Transfer Between Client-owned Accounts
  • Get Realtime Notifications on all Customer or Account Activity
  • Let's get started...


    Getting Started

    Sign Up for a Client API Account

    In order to use our API, you will need to sign up for a Rufus client API account. Please contact us for more information.

    Using Your API Keys

    Once you have your API keys, you can begin testing immediately. All keys are initially created in our Staging STAG environment. After you have finished testing and are satisfied with your integration, you can request keys for our Production PROD environment.

    API Endpoints

    Environment

    Link

    STAG

    https://staging.api.medicibank.io

    PROD

    https://api.medicibank.io

    Next, we will take a look at how to authenticate your API calls...

    Requesting Sandbox Access

    Access to our sandbox is for potential partners and clients. If you would like to have access to our API, please contact Medici Bank Operations at support@medicibank.us


    Authentication

    The MBAPI uses three main forms of credential verification for secure authentication.

  • API Keys
  • HMAC Signatures
  • API Keys

    When you sign up for an account, you will be granted your own unique set of API credentials. The two main credentials you will need is the API Key MBAPI-KEY and the API Secret MBAPI-SECRET.

    Your API Key (MBAPI-KEY) is public and should be passed along within your API call headers. Your API Secret (MBAPI-SECRET) is private and should not be passed along (or exposed) in any public setting. Failure to do so can allow for a hacker to create API requests on your behalf. Your account will be suspended if a breach or unexpected activity is detected on your account.

    HMAC Signature

    In order to secure each request, we enforce that each call be sent as a Hash-based Message Authentication Code or HMAC Signature. For more on how to construct the HMAC signature, go to Making Requests section.

    `Authorization: Bearer MBAPI-AUTHTOKEN

    `Next, we will look at the API Methods we allow...


    HTTP Verbs

    All requests are regulated to the following API Methods. Any method used outside of these will be rejected by the API with a 403 Forbidden status code.

    MethodUsageGETRequests that retrieve information concerning a data representation.POSTRequests that create a new data representation. Information can be passed back based on the type of request.PUTRequests that update partial information of a current data representation.DELETERequests that remove (or archive) a data representation.

    Next, we will take a look at all the statuses the API will respond with, including successful and unsuccessful (error) responses...


    HTTP Responses

    Below is a full list of possible status codes. In the case of an error code, we will respond with additional information if more details about an error is provided.

    2xx - Successful

    These are codes that mean that your API request was correct and without errors. Some calls are Idempotent. For more information on what means, visit the

    Standard Data Structures

    section.

    CodeReasonDescription2xxSuccessful"Your request was right!"200OK"The call was successful"201Created"The resource was created"202Accepted"The resource was updated successfully"204No Content"The resource was deleted successfully"

    4xx - Client-Side Errors

    CodeReasonDescription4xxClient Error"Your request is wrong!"400Bad Request"Your syntax is incorrect"401Unauthorized"You have wrong API credentials"403Forbidden"Your credentials don't have the permissions to allow this request"404Not Found"The resources/endpoint is invalid"405Method Not Allowed"Content-type method is not allowed"429Too Many Requests"Rate limit reached for this request"

    5xx - Server-Side Errors

    CodeReasonDescription5xxServer Error"We are wrong!"500Internal Server Error"Server error on our side"502Bad Gateway"Invalid response from the server"503Service Unavailable"An internal service is unavailable"504Gateway Time-out"The request took too long to process on the server"


    Making Requests

    To secure all requests, we require all requests to include a specific set of HEADERS.

    HEADERS

    MBAPI-KEYYour unique PUBLIC API keyMBAPI-TIMESTAMPThe user generated timestamp for the request. Must be number of seconds since Unix EpochMBAPI-SIGNATUREThe user generated message signature. The MBAPI-SIGNATURE header is generated by creating a SHA512 HMAC message digest with base64 encoding, using your MBAPI-SECRET as the secret key. See below for an example of how to construct the HMAC signed requestMBAPI-NONCEA unique string that identifies this request and prevents the replaying of a past request. Please see below on how to construct this nonce

    Please note: For POST requests, you should JSON.stringify the body to avoid a mismatch in formatting for the signed request.

    HMAC

    In cryptography, an HMAC (sometimes expanded as either keyed-hash message authentication code or hash-based message authentication code) is a specific type of message authentication code (MAC) involving a cryptographic hash function and a secret cryptographic key.

    In regular terms, HMAC is the process of using a key, in this case, your MBAPI-SECRET, and encrypting a concatenated string version of your entire API request. By encrypting the entire request, we can not only hide the contents of that request, but we can also ensure that all information can only be decrypted by those who have key permissions to do so.

    Signing your API request is straightforward.

    Below is an example of how to do so:

    Node.js Example

    var hash = crypto.createHmac(‘sha512’, {Your MBAPI SECRET}); // your MBAPI-SECRET e.g. “dONgcyGwBVupn/U2y8AdONGWkjfGomJqiKXk2BYaK4sd”

    hash.update("Your MBAPI Key"); // your MBAPI-KEY e.g. "1234567-ABCD-234RT-98yuT-8YHTjkUtf8klJF9m"

    hash.update("API Request Method"); // e.g. GET

    hash.update("API Path/URL"); // encoded API request URL e.g. "https://api.mb.io/dev/transfers"

    hash.update("Unix Timestamp"); // e.g. "1574184580246"

    hash.update("JSON.stringify(API Request Body)"); // your request body

    var hmacSignedRequest = hash.digest('base64');

    MBAPI-NONCE

    A Nonce is a number or string, that can be used only once. The reason for using a nonce in API requests, is to ensure that once a request has been sent, regardless of whether that request is successful, it still cannot be used (or resent) again. This guards against Replay Attacks and some Man-in-the-Middle Attacks.

    There are a number of ways to create a nonce. However, we ask that you create this nonce in a specific way. The MBAPI-NONCE should be constructed using your MBAPI-KEY + MBAPI-TIMESTAMP + A random 32-character string. Then taking that string and creating a base64_encoded hash. Very similar to the process of creating your HMAC signed request.

    Below is an example of how to do so:

    Node.js Example

    var hash = crypto.createHash(‘sha512’);

    hash.update("Your MBAPI-KEY");

    hash.update("Your MBAPI-TIMESTAMP");

    hash.update("Your Random 32 Character String");

    var MBAPI-NONCE = hash.digest('base64');

    HTTPS Only!


    Standard Data Structures

    Below are a list of standards that we enforce for our data structures.

    Content-Type

    Content-type: application/json

    Any content request (even if valid) that is not application/json will return a 400 Bad Request HTTP status code with errorMessage: "Invalid request headers"

    Timestamps

    All timestamps are returned in ISO 8601 format:

    `YYYY-MM-DDTHH:MM:SSZ

    `

    Idempotent Requests

    An Idempotent Request is a request that may change the state of the resource once, but will not continue to change if that identical request is sent again.

    For example, a PUT request will update some (or all) of the information on a resource, based on what is being asked to be changed. But once the resource has been changed, sending in another request, that is identical to the first request, will not result in anything changing. Because no new information was changed.

    This is the same for DELETE requests. Once a resource is deleted, it can not be re-deleted.

    Standard Response Structure

    An Array of Data

    Response 200 (application/json)

    {

    "total":2,

    "data": [

    {"field":"value1"},

    {"field":"value2"}

    ],

    "url":"the URL used in the API call",

    "status":"The HTTP Status Code",

    "timestamp":"the timestamp of the API call",

    "links": {

    "first":"link to the first available paginated resource",

    "next":"link to next available paginated resource",

    "prev":"link to previously available paginated resource",

    "last":"link to the last available paginated resource"

    }

    }

    Single Data Object

    Response 200 (application/json)

    {

    "data": {

    "field":"value"

    },

    "url":"the URL used in the API call",

    "status":"The HTTP Status Code",

    "timestamp":"the timestamp of the API call"

    }

    Example Error Response

    Response 404 (application/json)

    {

    "error": {

    "status": "Bad Request",

    "reason": "Missing Requirements",

    "description": "The following parameters are missing: ['name']"

    }

    }

    Please note: the "links" and "total" fields are not used when errors are returned

    Shortcut Response

    Some of our responses are "shortcut" responses and will only return a short data set. For example, the Get Account Balance route only returns the Balance and the Available Balance

    Sorting and Filtering

    Every API result that produces a collection of data can be manually sorted and/or filtered. By default, collections of data are sorted by the createdAt timetsamp DESC. This means the newest record in that data collection is first on the list (and the oldest is last).

    Sorting

    You can dictate sorting by passing the sort= parameter in any route and detailing the field (or fields) by which you'd like to sort.

    `/example?sort=['name':'ASC']

    `

    Filtering

    Limit

    To manually change number of records returned in a single API call, use the limit= parameter. By default, value of limit is set to 50. If you do not provide limit parameter or do not modify its default value then 50 records are returned.

    For example, to return 60 records per page, you would do the following:

    `/example/?limit=60

    `limit parameter works with page parameter. Also refer PAGE section for more details.

    Page

    Every API result that produces a collection of data is automatically paginated. The default number of records per page is 50. This page and limit parameters works with each other. Value of limit parameter determines the number of records contained in one page.

    By default, if no page and limit parameters are specified then page=1 and limit=50 is considered and so record from 1 to 50 are returned in first page.

    For example, if you want to retrieve 51 to 100 records then specify page=2

    `/example/?page=2 (would return results from 51 to 100, provided records are available)

    `


    Prerequisites

    You must have below available with you before making any of MBAPI call.

    MB API Keys

  • Valid pair of MBAPI-KEY and MBAPI-SECRET issued to you.
  • Please contact Medici Bank to get your MBAPI-KEY and MBAPI-SECRET pair

    You are now ready to start using our API. We look forward to seeing what great financial applications you will be able to create with us and we appreciate your business.


    Webhooks

    Webhooks are a way for the API to notify your application of events in real time. When an event occurs, the API sends an HTTP POST request to your configured webhook URL with event details. This document outlines the supported webhooks, their payloads, and integration guidelines.EndFragment

    Integration Guidelines

  • Webhook Setup:
  • Register your webhook endpoint but submitting this to us.
  • Use HTTPS endpoints for secure communication.
  • Request Authentication:
  • The API includes an Authorization header with every webhook request. Validate this header to ensure the request’s authenticity.
  • Response Handling:
  • Respond with a 200 HTTP status code within 10 seconds.
  • Any non-200 response will trigger a retry mechanism.
  • Webhook Secret Rotation:

    Rotate secrets periodically for enhanced security.**

    Customers**

  • Customer Created
  • Description: Triggered when a new customer profile is created.
  • Event Code: customer.created
  • Payload Example:
  • {

    "event": "customer.created",

    "data": {

    "customer_id": "67890",

    "name": "John Doe",

    "email": "john.doe@example.com",

    "timestamp": "2024-12-19T10:00:00Z"

    }

    }

  • Customer Update
  • Description: Triggered when a the customer info is updated.
  • Event Code: customer.updated
  • Payload Example:
  • {

    "eventnt": "customer.updated",

    "data": {

    "customer_id": "67890",

    "name": "John Doe",

    "email": "john.doe@newdomain.com",

    "timestamp": "2024-12-19T11:00:00Z"

    }

    }

    Businesses

  • Business Created
  • Description: Triggered when a new business is created.
  • Event Code: business.created
  • Payload Example:
  • {

    "eventnt": "business.created",

    "data": {

    "business_id": "67890",

    "name": "ACME Business",

    "email": "john.doe@newdomain.com",

    "timestamp": "2024-12-19T11:00:00Z"

    }

    }

  • Business Updated
  • Description: Triggered when the business info is updated.
  • Event Code: business.created
  • Payload Example:
  • {

    "eventnt": "business.updated",

    "data": {

    "business_id": "67890",

    "name": "ACME Business",

    "email": "john.doe@newdomain.com",

    "timestamp": "2024-12-19T11:00:00Z"

    }

    }

    Accounts

  • Account Created
  • Description: Triggered when a new account is created for a customer.
  • Event Code: account.created
  • Payload Example:
  • {

    "event": "account.created",

    "data": {

    "account_id": "13579",

    "customer_id": "67890",

    "type": "savings",

    "balance": 0.00,

    "currency": "USD",

    "timestamp": "2024-12-19T09:00:00Z"

    }

    }

  • Account Updated
  • Description: Triggered when an account’s details are updated.
  • Event Code: account.updated
  • Payload Example:
  • {

    "event": "account.updated",

    "data": {

    "account_id": "13579",

    "balance": 500.00,

    "currency": "USD",

    "timestamp": "2024-12-19T12:30:00Z"

    }

    }

  • Account Closed:
  • Description: Triggered when an account is closed.
  • Event Code: account.closed
  • Payload Example:
  • {

    "event": "account.closed",

    "data": {

    "account_id": "13579",

    "customer_id": "67890",

    "timestamp": "2024-12-19T16:00:00Z"

    }

    }

    Transactions

  • Transaction Created
  • Description: Triggered when a new transaction is initiated.
  • Event Code: transaction.created
  • Payload Example:
  • {

    "event": "transaction.created",

    "data": {

    "transaction_id": "24680",

    "amount": 250.00,

    "currency": "USD",

    "status": "pending",

    "timestamp": "2024-12-19T14:30:00Z"

    }

    }

  • Transaction Settled
  • Description: Triggered when a transaction is settled.
  • Event Code: transaction.settled
  • Payload Example:
  • {

    "event": "transaction.settled",

    "data": {

    "transaction_id": "24680",

    "amount": 250.00,

    "currency": "USD",

    "status": "settled",

    "timestamp": "2024-12-19T15:30:00Z"

    }

    }

  • Reversed
  • Description: Triggered when a transaction is reversed.
  • Event Code: transaction.reversed
  • Payload Example:
  • {

    "event": "transaction.reversed",

    "data": {

    "transaction_id": "24680",

    "amount": 250.00,

    "currency": "USD",

    "status": "reversed",

    "timestamp": "2024-12-19T16:30:00Z"

    }

    }

    Nomenclature

    To ensure clarity, our naming convention and meanings are as follows:

  • Clients are business entities that have contracted with Medici Bank for Rufus, its Banking as a Service offering.
  • Programs are distinct offerings offered by Clients to their own prospects and customers. For example, a wallet program or a prepaid card program or a credit card program. Clients and Programs are established outside the API. Programs are operated via the API.
  • Customers represents individuals who have User Profiles with a Client’s Program. These Customers can be Applicants, Owners of Accounts, Owners of Entities, Users of Accounts, or some combination thereof (for example, a business owner would be a Customer but not necessarily a User of the Account whereas an employee might be a Customer that is authorized as a User of the Account but is not necessarily an Owner of the entity.
  • Accounts are bank accounts that are always attached to a Customer.
  • Entities are organizations, such as a business, that are always attached to one or more Customers and, upon Bank approval, can have one or more Accounts. Customers do not have Entity accounts; Customers may have Entities and Entities may have Accounts.
  • Send Money effects external transfers, including Customer or Business payments (eg via wire or ACH) to their own account elsewhere, and payments to others, either at other banks or other Programs.
  • Transfers are book-entry, or ledger, transfers either between a Customer’s own Accounts or between the Accounts of separate Customers within the same Program and do not use the Wire or ACH payment networks. Note that while money transfers across Programs sponsored by Medici Bank might be executed as book transfers by the Bank, they are invoked via the Send Money calls.
  • Transactions are any type of debit or credit that has already occurred and ledgered on the system.
  • Introduction

    GET ping

    {{baseURL}}/ping

    Ping Endpoint

    The Ping endpoint is used to verify that the system is accessible and operational. Think of this as a quick "heartbeat" check to confirm your connection to the API.

    Example Request

    curl

    curl --location -g '{{baseURL}}/ping'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "message": "Pong"
      },
      "url": "/ping",
      "status": 200,
      "timestamp": "2025-01-01T19:40:21Z"
    }

    GET info

    {{baseURL}}/info

    Info Endpoint

    The Info endpoint is designed for testing your API keys and validating your HMAC signature creation process. This call allows clients to confirm their authentication setup is correct and their keys are properly configured.


    Next Steps

    After confirming system accessibility with the Ping endpoint and validating your API keys with the Info endpoint, you’re ready to explore the full range of API functionality. Use the provided documentation to integrate additional features, such as managing customers, uploading documents, and more.

    Example Request

    curl

    curl --location -g '{{baseURL}}/info'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "name": "Medici Bank",
        "client_id": "CLIDXXXXXXXXXXXXXXX",
        "createdAt": "2024-12-31 00:10:27"
      },
      "url": "/info",
      "status": 200,
      "timestamp": "2025-01-03T05:08:10Z"
    }

    Customers

    POST Create Customer

    {{baseURL}}/customers

    Create Customer

    The Create Customer API allows clients to register a new customer in the system. A customer must be associated with a specific client, and the provided information must meet all validation requirements.

    Endpoint

    POST /customers

    Description

    This API creates a new customer profile with all relevant details, including personal information, contact details, residential and mailing addresses, and compliance-related fields.

    Required Parameters

  • firstName (in body) – The first name of the customer.
  • lastName (in body) – The last name of the customer.
  • email (in body) – The email address of the customer.
  • mobile (in body) – An object containing:
  • number – The mobile phone number.
  • countryCode – The country code of the mobile number.
  • country – The country associated with the phone number.
  • DOB (in body) – The date of birth of the customer (YYYY-MM-DD format).
  • residential_address (in body) – An object containing:
  • addressLine1 – The primary address line.
  • cityLocale – The city or locale.
  • stateRegion – The state or region.
  • postalCode – The postal code.
  • country – The country of residence.
  • mailing_address (in body) – Same structure as residential_address.
  • taxPayer_id (in body) – The customer's taxpayer identification number.
  • taxPayer_id_type (in body) – The type of taxpayer ID.
  • primaryCitizenship (in body) – The country of primary citizenship.
  • isPEP (in body) – Boolean flag indicating if the customer is a Politically Exposed Person (PEP).
  • isUS (in body) – Boolean flag indicating if the customer is a U.S. citizen.
  • isSeniorPolFig (in body) – Boolean flag indicating if the customer is a senior political figure.
  • isFamilySeniorPolFig (in body) – Boolean flag indicating if the customer has a family member who is a senior political figure.
  • Optional Parameters

  • middleName – Middle name of the customer.
  • maidenName – Maiden name (if applicable).
  • suffix – Name suffix (e.g., Jr., Sr.).
  • nickname – Nickname or preferred name.
  • homePhone – Home phone number.
  • workPhone – Work phone number.
  • birthplace – City or country where the customer was born.
  • nationality – Additional nationality details.
  • occupation – Customer's occupation.
  • secondaryCitizenship – Secondary citizenship if applicable.
  • Validation Rules

  • All required fields must be present.
  • Email must be a valid email format.
  • Mobile number must follow proper formatting.
  • DOB must be in YYYY-MM-DD format.
  • The taxPayer_id must match the format based on taxPayer_id_type.
  • Citizenship-related flags must be boolean (true or false).
  • Error Handling

  • If any required fields are missing, a 400 Bad Request error is returned.
  • If the email format is invalid, a 400 Bad Request error is returned.
  • If the taxPayer_id does not match its expected format, a 400 Bad Request error is returned.
  • If the customer already exists in the system, a 409 Conflict error is returned.
  • If an unexpected error occurs, a 500 Internal Server Error is returned.

  • Taxpayer ID Types Documentation

    When creating or managing customers, a taxpayer ID is required to ensure compliance with regulatory and taxation requirements. Below is a detailed explanation of the supported taxpayer ID types:

    Supported Taxpayer ID Types

  • SSN (Social Security Number)
  • A unique nine-digit number assigned to individuals by the United States Social Security Administration. The format is XXX-XX-XXXX and is used primarily for tax and identification purposes within the U.S.

  • EIN (Employer Identification Number)
  • A unique nine-digit number assigned by the IRS to businesses operating in the United States. The format is XX-XXXXXXX and is used for tax filings and employer-related activities.

  • ETIN (Electronic Taxpayer Identification Number)
  • A unique identifier issued for specific electronic tax filing purposes. It is typically assigned by the IRS or equivalent authorities. There is no standardized format, as it can vary depending on its use.

  • TIN (Taxpayer Identification Number)
  • A generic term that encompasses various taxpayer ID types (e.g., SSN, EIN, ITIN) issued for tax-related identification.

  • ITIN (Individual Taxpayer Identification Number)
  • A nine-digit number issued by the IRS to individuals who are not eligible for an SSN but need to file U.S. taxes. The format is 9XX-XX-XXXX.

  • NINO (National Insurance Number)
  • A nine-character alphanumeric identifier issued by the United Kingdom for tax and social security purposes. The format is XX999999X.

  • GSTIN (Goods and Services Taxpayer Identification Number)
  • A 15-character alphanumeric identifier assigned to businesses in India under the GST regime.

  • ABN (Australian Business Number)
  • An 11-digit identifier assigned to businesses operating in Australia. It is used for tax and other business-related purposes.

  • PAN (Permanent Account Number)
  • A ten-character alphanumeric identifier issued by the Indian Income Tax Department. The format is XXXXX9999X.

  • NIF (Número de Identificación Fiscal)
  • A tax identification number used in Spain. The format is nine characters, typically starting with a letter and ending with a letter or number (e.g., X9999999T).

  • CPF (Cadastro de Pessoas Físicas)
  • An 11-digit tax identification number issued to individuals in Brazil. The format is XXX.XXX.XXX-XX.

  • CNPJ (Cadastro Nacional da Pessoa Jurídica)
  • A 14-digit identifier for businesses in Brazil. The format is XX.XXX.XXX/0001-XX.

  • OTHER
  • Used for taxpayer ID types not explicitly listed above. Additional context should be provided to ensure proper identification and processing.

    Key Points

  • The taxPayer_id_type must match one of the supported types listed above.
  • The taxPayer_id must conform to the specific format for the chosen type.
  • Use the OTHER type only when the taxpayer ID does not fall into any predefined categories.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/customers' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{ "firstName": "Anna2", "lastName": "Smith", "email": "annera.smith@example.com", "mobile": { "number": "1188771234", "countryCode": "61", "country": "AUS", "type": "M" }, "DOB": "1998-03-28", "residential_address": { "addressLine1": "42 Wallaby Way", "cityLocale": "Sydney", "stateRegion": "NSW", "postalCode": "2000", "country": "AUS" }, "mailing_address": { "addressLine1": "42 Wallaby Way", "cityLocale": "Sydney", "stateRegion": "NSW", "postalCode": "2000", "country": "AUS" }, "taxPayer_id": "600-10-1111", "taxPayer_id_type": "TFN", "primaryCitizenship": "AUS", "isPEP": false, "isUS": false, "isSeniorPolFig": false, "isFamilySeniorPolFig": false }'
    JSON body
    {
      "firstName": "Anna2",
      "lastName": "Smith",
      "email": "annera.smith@example.com",
      "mobile": {
        "number": "1188771234",
        "countryCode": "61",
        "country": "AUS",
        "type": "M"
      },
      "DOB": "1998-03-28",
      "residential_address": {
        "addressLine1": "42 Wallaby Way",
        "cityLocale": "Sydney",
        "stateRegion": "NSW",
        "postalCode": "2000",
        "country": "AUS"
      },
      "mailing_address": {
        "addressLine1": "42 Wallaby Way",
        "cityLocale": "Sydney",
        "stateRegion": "NSW",
        "postalCode": "2000",
        "country": "AUS"
      },
      "taxPayer_id": "600-10-1111",
      "taxPayer_id_type": "TFN",
      "primaryCitizenship": "AUS",
      "isPEP": false,
      "isUS": false,
      "isSeniorPolFig": false,
      "isFamilySeniorPolFig": false
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "id": 4,
        "cid": "CID250103052624-YXXDNB-6NJCG6",
        "status": "PND",
        "firstName": "Anna",
        "middleName": null,
        "lastName": "Smith",
        "maidenName": null,
        "suffix": null,
        "nickname": null,
        "email": "anna.smith@example.com",
        "DOB": "1998-03-28T00:00:00.000Z",
        "birthplace": null,
        "nationality": null,
        "occupation": null,
        "taxPayer_id": "600-10-1111",
        "taxPayer_id_type": "TFN",
        "primaryCitizenship": "AUS",
        "secondaryCitizenship": null,
        "isPEP": false,
        "isUS": false,
        "isSeniorPolFig": false,
        "isFamilySeniorPolFig": false,
        "isDeleted": false,
        "createdAt": "2025-01-03T00:07:48.000Z",
        "updatedAt": "2025-01-03T05:26:25.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "mobile": 15,
        "homePhone": null,
        "workPhone": null,
        "residential_address": 13,
        "mailing_address": 14
      },
      "url": "/customers",
      "status": 201,
      "timestamp": "2025-01-03T05:26:25Z"
    }

    GET List Customers

    {{baseURL}}/customers?sort=firstName:ASC

    List Customers

    The List Customers API allows clients to retrieve a paginated list of all customers associated with their client account.

    Endpoint

    GET /customers

    Description

    This API retrieves all customers for the authenticated client. The response is paginated, and clients can filter results, set limits, and specify sorting preferences.

    Query Parameters

  • sort (optional) – Defines sorting field and direction.
  • Example: sort=firstName:ASC
  • limit (optional) – Number of records to return per page. Default is 50.
  • page (optional) – Page number for pagination. Default is 1.
  • filter (optional) – Allows filtering by specific fields.
  • Response Fields

  • total – Total number of customers found.
  • data – Array of customer records.
  • url – The request URL.
  • next – The URL for the next page if available.
  • Validation Rules

  • The sort parameter must specify a valid field and direction (ASC/DESC).
  • The limit parameter must be a positive integer.
  • The page parameter must be a positive integer.
  • Error Handling

  • If the sorting field or direction is invalid, a 400 Bad Request error is returned.
  • If an unexpected error occurs, a 500 Internal Server Error is returned.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/customers?sort=firstName:ASC'

    Example Response

    200 OK

    Body

    {
      "total": 1,
      "data": [
        {
          "customer_id": "CID6987833272193515520",
          "business_id": "BID6908133968411885568",
          "consumer_id": "",
          "privilege": "EXE",
          "role": "CLVL",
          "status": "LVE",
          "firstName": "Steve",
          "middleName": "",
          "lastName": "Williams",
          "maidenName": "",
          "suffix": "",
          "nickname": "",
          "email": "steve@medici.bank",
          "isEmailVerified": 1,
          "mobile": "18001231245",
          "isMobileVerified": 1,
          "homePhone": null,
          "workPhone": null,
          "DOB": "2000-10-25",
          "birthplace": "",
          "nationality": "",
          "residential_address": {
            "id": 1,
            "addressLine1": "100 Mockingbird Lane",
            "addressLine2": "Apt. 43",
            "cityLocale": "New York City",
            "stateRegion": "AK",
            "postalCode": "11001",
            "country": "USA",
            "createdAt": "2019-11-08 12:18:05",
            "updatedAt": "2019-11-08 12:18:05"
          },
          "mailing_address": {
            "id": 10,
            "addressLine1": "100 Mockingbird Lane",
            "addressLine2": "Apt. 43",
            "cityLocale": "New York City",
            "stateRegion": "AK",
            "postalCode": "11001",
            "country": "USA",
            "createdAt": "2019-11-08 12:18:05",
            "updatedAt": "2019-11-08 12:18:05"
          },
          "occupation": "",
          "taxPayer_id": "100-20-1111",
          "taxPayer_id_type": "OTHER",
          "secondaryCitizenship": null,
          "internetGambling": 0,
          "annualIncome": null,
          "isPEP": 0,
          "isUS": 0,
          "isCitizen": 0,
          "hasCompanyControl": 1,
          "isSeniorPolFig": 0,
          "isFamilySeniorPolFig": 0,
          "isMarried": 0,
          "isVerified": 1,
          "createdAt": "2022-10-17 13:54:39",
          "updatedAt": "2022-11-08 15:51:10"
        }
      ],
      "url": "/customers",
      "status": 200,
      "timestamp": "2022-01-01 13:15:40"
    }

    GET Customer Details

    {{baseURL}}/customers/CID250103061236-6AT5DW-KSGN24

    Get Customer Details

    The Get Customer Details API allows clients to retrieve detailed information about a specific customer, including their profile information and any associated accounts.

    Endpoint

    GET /customers/:customer_id

    Description

    This API fetches all available details of a specific customer, including their personal details, addresses, and phone numbers. Additionally, it retrieves any accounts associated with the customer.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer whose details are being retrieved.
  • Response Fields

  • customer – Contains all personal details of the customer.
  • accounts – A list of accounts associated with the customer.
  • Validation Rules

  • The customer_id parameter is required.
  • The customer must belong to the authenticated client.
  • The customer record must not be deleted.
  • Error Handling

  • If the customer_id is missing or invalid, a 400 Bad Request error is returned.
  • If the customer does not exist or is deleted, a 404 Not Found error is returned.
  • If an unexpected error occurs, a 500 Internal Server Error is returned.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/customers/CID250103061236-6AT5DW-KSGN24'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "cid": "CID250103052624-YXXDNB-6NJCG6",
        "status": "PND",
        "firstName": "Anna",
        "middleName": null,
        "lastName": "Smith",
        "maidenName": null,
        "suffix": null,
        "nickname": null,
        "email": "anna.smith@example.com",
        "DOB": "1998-03-28T00:00:00.000Z",
        "birthplace": null,
        "nationality": null,
        "occupation": null,
        "taxPayer_id": "600-10-1111",
        "taxPayer_id_type": "TFN",
        "primaryCitizenship": "AUS",
        "secondaryCitizenship": null,
        "isPEP": false,
        "isUS": false,
        "isSeniorPolFig": false,
        "isFamilySeniorPolFig": false,
        "isDeleted": false,
        "createdAt": "2025-01-03T00:07:48.000Z",
        "updatedAt": "2025-01-03T05:26:25.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "mobile": {
          "id": 15,
          "number": "9988771234",
          "countryCode": "61",
          "country": "AUS",
          "type": "M",
          "createdAt": "2025-01-03T00:26:24.000Z"
        },
        "homePhone": null,
        "workPhone": null,
        "residential_address": {
          "id": 13,
          "addressLine1": "42 Wallaby Way",
          "addressLine2": null,
          "cityLocale": "Sydney",
          "stateRegion": "NSW",
          "postalCode": "2000",
          "createdAt": "2025-01-03T00:26:24.000Z",
          "updatedAt": "2025-01-03T05:26:24.000Z",
          "country": "AUS"
        },
        "mailing_address": {
          "id": 14,
          "addressLine1": "42 Wallaby Way",
          "addressLine2": null,
          "cityLocale": "Sydney",
          "stateRegion": "NSW",
          "postalCode": "2000",
          "createdAt": "2025-01-03T00:26:24.000Z",
          "updatedAt": "2025-01-03T05:26:25.000Z",
          "country": "AUS"
        }
      },
      "url": "/customers/CID250103052624-YXXDNB-6NJCG6",
      "status": 200,
      "timestamp": "2025-01-03T05:56:42Z"
    }

    PUT Update Customer

    {{baseURL}}/customers/:customer_id

    Update Customer

    The Update Customer API allows clients to modify an existing customer's details. Only non-ID fields can be updated, ensuring that unique identifiers remain unchanged.

    Endpoint

    PUT /customers/:customer_id

    Description

    This API enables clients to update customer details selectively. Only the fields provided in the request body will be modified, and all changes will be logged.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer to be updated.
  • Optional Parameters

  • firstName – The updated first name of the customer.
  • lastName – The updated last name of the customer.
  • email – The updated email address of the customer.
  • mobile – An object containing updated mobile details:
  • number – The new mobile number.
  • countryCode – The updated country code.
  • country – The updated country name.
  • residential_address – An object containing updated residential address fields.
  • mailing_address – An object containing updated mailing address fields.
  • occupation – The updated occupation of the customer.
  • taxPayer_id – The updated taxpayer ID.
  • taxPayer_id_type – The updated taxpayer ID type.
  • primaryCitizenship – The updated primary citizenship.
  • secondaryCitizenship – The updated secondary citizenship (if applicable).
  • Validation Rules

  • The customer_id must exist in the system.
  • The email must follow a valid email format.
  • The mobile number must follow proper formatting.
  • The taxPayer_id must adhere to the correct format for its type.
  • The residential_address and mailing_address fields must include valid address components if provided.
  • Error Handling

  • If the customer is not found, a 404 Not Found error is returned.
  • If the email format is invalid, a 400 Bad Request error is returned.
  • If the taxPayer_id format is incorrect, a 400 Bad Request error is returned.
  • If an unexpected error occurs, a 500 Internal Server Error is returned.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/customers/:customer_id' \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{ "firstName": "Shania", "residential_address": { "addressLine2": "Suite 54" } }'
    JSON body
    {
      "firstName": "Shania",
      "residential_address": {
        "addressLine2": "Suite 54"
      }
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "cid": "CID250103052624-YXXDNB-6NJCG6",
        "status": "PND",
        "firstName": "Shania",
        "middleName": null,
        "lastName": "Smith",
        "maidenName": null,
        "suffix": null,
        "nickname": null,
        "email": "anna.smith@example.com",
        "DOB": "1998-03-28T00:00:00.000Z",
        "birthplace": null,
        "nationality": null,
        "occupation": null,
        "taxPayer_id": "600-10-1111",
        "taxPayer_id_type": "TFN",
        "primaryCitizenship": "AUS",
        "secondaryCitizenship": null,
        "isPEP": false,
        "isUS": false,
        "isSeniorPolFig": false,
        "isFamilySeniorPolFig": false,
        "isDeleted": false,
        "createdAt": "2025-01-03T00:07:48.000Z",
        "updatedAt": "2025-01-03T06:17:41.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "mobile": {
          "id": 15,
          "number": "9988771234",
          "countryCode": "61",
          "country": "AUS",
          "type": "M",
          "createdAt": "2025-01-03T00:26:24.000Z"
        },
        "homePhone": null,
        "workPhone": null,
        "residential_address": {
          "id": 13,
          "addressLine1": "500 Mockingbird Lane",
          "addressLine2": "Suite 54",
          "cityLocale": "Sydney",
          "stateRegion": "NSW",
          "postalCode": "2000",
          "createdAt": "2025-01-03T00:26:24.000Z",
          "updatedAt": "2025-01-03T06:17:40.000Z",
          "country": "AUS"
        },
        "mailing_address": {
          "id": 14,
          "addressLine1": "42 Wallaby Way",
          "addressLine2": null,
          "cityLocale": "Sydney",
          "stateRegion": "NSW",
          "postalCode": "2000",
          "createdAt": "2025-01-03T00:26:24.000Z",
          "updatedAt": "2025-01-03T05:26:25.000Z",
          "country": "AUS"
        }
      },
      "url": "/customers/CID250103052624-YXXDNB-6NJCG6",
      "status": 202,
      "timestamp": "2025-01-03T06:17:41Z"
    }

    PUT Activate Customer

    {{baseURL}}/customers/CID250103061236-6AT5DW-KSGN24/activate

    Update Customer

    The Update Customer API allows clients to modify an existing customer's details. Only non-ID fields can be updated, ensuring that unique identifiers remain unchanged.

    Endpoint

    PUT /customers/:customer_id

    Description

    This API enables clients to update customer details selectively. Only the fields provided in the request body will be modified, and all changes will be logged.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer to be updated.
  • Optional Parameters

  • firstName – The updated first name of the customer.
  • lastName – The updated last name of the customer.
  • email – The updated email address of the customer.
  • mobile – An object containing updated mobile details:
  • number – The new mobile number.
  • countryCode – The updated country code.
  • country – The updated country name.
  • residential_address – An object containing updated residential address fields.
  • mailing_address – An object containing updated mailing address fields.
  • occupation – The updated occupation of the customer.
  • taxPayer_id – The updated taxpayer ID.
  • taxPayer_id_type – The updated taxpayer ID type.
  • primaryCitizenship – The updated primary citizenship.
  • secondaryCitizenship – The updated secondary citizenship (if applicable).
  • Validation Rules

  • The customer_id must exist in the system.
  • The email must follow a valid email format.
  • The mobile number must follow proper formatting.
  • The taxPayer_id must adhere to the correct format for its type.
  • The residential_address and mailing_address fields must include valid address components if provided.
  • Error Handling

  • If the customer is not found, a 404 Not Found error is returned.
  • If the email format is invalid, a 400 Bad Request error is returned.
  • If the taxPayer_id format is incorrect, a 400 Bad Request error is returned.
  • If an unexpected error occurs, a 500 Internal Server Error is returned.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/customers/CID250103061236-6AT5DW-KSGN24/activate' \
      --request PUT \
      --header 'Content-Type: application/json' \

    Example Response

    200 OK

    Body

    {
      "success": false,
      "error": {
        "status": 400,
        "reason": "Validation Error",
        "description": "Customer is already active."
      },
      "timestamp": "2025-01-15T16:29:26Z"
    }

    DELETE Remove Customer

    {{baseURL}}/customers/CID250103052624-YXXDNB-6NJCG6

    Remove Customer

    The Remove Customer API allows clients to deactivate a customer record by setting the isDeleted flag to true. This ensures that customer data remains in the system but is no longer considered active.

    Endpoint

    DELETE /customers/:customer_id

    Description

    This API marks a customer as removed without physically deleting their record. The removal action must include a reason for tracking purposes.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer to be removed.
  • notes (in body) – The reason for removing the customer.
  • Validation Rules

  • The customer_id must exist in the system.
  • The notes field is required and must contain a valid reason.
  • Error Handling

  • If the customer does not exist, a 404 Not Found error is returned.
  • If the notes field is missing, a 400 Bad Request error is returned.
  • If an unexpected error occurs, a 500 Internal Server Error is returned.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/customers/CID250103052624-YXXDNB-6NJCG6'
    JSON body
    {
      "notes": "This customer is being removed due to closing their parent account"
    }

    No example response in the published collection.

    PUT Reinstate Customer

    {{baseURL}}/customers/:customer_id/reinstate

    Reinstate Customer

    The Reinstate Customer API allows clients to reactivate a previously removed customer by setting the isDeleted flag back to false.

    Endpoint

    PUT /customers/:customer_id/reinstate

    Description

    This API restores a deactivated customer record, allowing the customer to become active again. A reason must be provided to track the reinstatement action.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer to be reinstated.
  • notes (in body) – The reason for reinstating the customer.
  • Validation Rules

  • The customer_id must exist in the system and be in a removed state (isDeleted: true).
  • The notes field is required and must contain a valid reason.
  • Error Handling

  • If the customer does not exist or is not removed, a 404 Not Found error is returned.
  • If the notes field is missing, a 400 Bad Request error is returned.
  • If an unexpected error occurs, a 500 Internal Server Error is returned.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/customers/:customer_id/reinstate' \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{ "notes": "This customer reactivated thier account" }'
    JSON body
    {
      "notes": "This customer reactivated thier account"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "message": "Customer:customer_id successfully reinstated."
      },
      "url": "/customers/:customer_id/reinstate",
      "status": 202,
      "timestamp": "2025-01-03T15:44:31Z"
    }

    POST Upload KYC Document

    {{baseURL}}/documents

    KYC Doc Statuses:

  • PND - Pending
  • APR - Approved
  • REJ - Rejected
  • Document Types:

  • DRIVERSL - Driver's License
  • PASSPORT - Passport
  • GOVERNID - Official Government ID
  • OTHER - Other
  • Example Request

    curl

    curl --location -g '{{baseURL}}/documents' \
      --request POST \
      --header 'Content-Type: application/json' \

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "doc_id": "0193e4dc-16bd-75b6-923b-24dce8f371ea",
        "doc_type": "PASSPORT",
        "original_fileName": "my_passpowrd.jpg",
        "mime_type": "JPG",
        "status": "PND",
        "uploadedAt": "2022-01-01 13:14:54",
        "updatedAt": "2022-01-01 13:14:54"
      },
      "timestamp": "2022-01-01 13:14:54"
    }

    GET KYC Document

    {{baseURL}}/documents/:customer_id/:doc_id

    This will return the KYC doc information with status. The actual file will not be returned.

    Example Request

    curl

    curl --location -g '{{baseURL}}/documents/:customer_id/:doc_id'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "doc_id": "0193e4dc-16bd-75b6-923b-24dce8f371ea",
        "doc_type": "PASSPORT",
        "original_fileName": "my_passpowrd.jpg",
        "mime_type": "JPG",
        "status": "APR",
        "uploadedAt": "2022-01-01 13:14:54",
        "updatedAt": "2022-01-01 13:14:54"
      },
      "timestamp": "2022-01-01 13:14:54"
    }

    Customer Authentication

    POST Create Authentication Access

    {{baseURL}}/authentication/create/CID250103014042-RAFVZE-98TWFD

    Create Customer Access

    The Create Customer Access API allows clients to establish authentication credentials for a customer, enabling them to log in to the system. This API ensures that a customer access record is created only once; if access has been removed, the user must use the Restore Access API instead.

    Endpoint

    POST /authentication/create/:customer_id

    Description

    This API is used to create an authentication record for a customer. A customer can only have one authentication record; if the record already exists, a new one cannot be created. If access was previously removed, the customer must restore access instead of creating a new record.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer whose access is being created.
  • password (in body) – The password to be set for the customer.
  • Validation Rules

  • A customer access record cannot be created if one already exists.
  • If access was previously removed, this API will return an error instructing the client to use the Restore Access API.
  • Password must meet complexity requirements:
  • At least 8 characters long
  • Must contain at least one uppercase letter
  • Must contain at least one lowercase letter
  • Must contain at least one number
  • Must contain at least one special character
  • Cannot contain spaces
  • Example Request

    curl

    curl --location -g '{{baseURL}}/authentication/create/CID250103014042-RAFVZE-98TWFD' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{ "password": "04x$?S84p!IFHk" }'
    JSON body
    {
      "password": "04x$?S84p!IFHk"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "customer_id": "CID250103014042-RAFVZE-98TWFD",
        "username": "john.doe@example.com"
      },
      "status": 201,
      "timestamp": "2025-01-04T01:41:51Z"
    }

    DELETE Remove Authentication Access

    {{baseURL}}/authentication/remove/CID250103014042-RAFVZE-98TWFD

    Remove Customer Access

    The Remove Customer Access API allows clients to disable authentication for a specific customer. This does not delete the authentication record but marks it as inactive.

    Endpoint

    DELETE /authentication/remove/:customer_id

    Description

    This API is used to remove access for a customer. Once access is removed, the customer will no longer be able to log in. Access can be reinstated using the Restore Access API.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer whose access is being removed.
  • Validation Rules

  • The customer must have an existing authentication record.
  • If the customer access is already removed, this API will return an error.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/authentication/remove/CID250103014042-RAFVZE-98TWFD'

    No example response in the published collection.

    PUT Restore Authentication Access

    {{baseURL}}/authentication/restore/CID250103014042-RAFVZE-98TWFD

    Restore Customer Access

    The Restore Customer Access API allows clients to reinstate authentication for a customer whose access was previously removed.

    Endpoint

    PUT /authentication/restore/:customer_id

    Description

    This API is used to restore access for a customer after it was previously removed. It reactivates the authentication record, allowing the customer to log in again.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer whose access is being restored.
  • Validation Rules

  • The customer must have an existing authentication record that was previously removed.
  • If the customer’s access is already active, this API will return an error.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/authentication/restore/CID250103014042-RAFVZE-98TWFD' \
      --request PUT \
      --header 'Content-Type: application/json' \

    Example Response

    200 OK

    Body

    {
      "success": true,
      "status": 202,
      "timestamp": "2025-01-04T02:26:34Z"
    }

    PUT Change Authentication Password

    {{baseURL}}/authentication/changePwd/CID250103014042-RAFVZE-98TWFD

    Change Customer Password

    The Change Customer Password API allows a customer to update their password while maintaining their authentication credentials.

    Endpoint

    PUT /authentication/changePwd/:customer_id

    Description

    This API enables a customer to change their password by providing their current password and a new password. The old password must match the existing record for the change to be successful.

    Required Parameters

  • customer_id (in path) – The unique identifier of the customer whose password is being changed.
  • password_old (in body) – The current password.
  • password_new (in body) – The new password to be set.
  • Validation Rules

  • The current password must match the stored password.
  • The new password must meet complexity requirements:
  • At least 8 characters long
  • Must contain at least one uppercase letter
  • Must contain at least one lowercase letter
  • Must contain at least one number
  • Must contain at least one special character
  • Cannot contain spaces
  • The new password cannot be the same as the old password.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/authentication/changePwd/CID250103014042-RAFVZE-98TWFD' \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{ "password_old": "04x$?S84p!IFHk", "password_new": "04x$?S84p!IFHke" }'
    JSON body
    {
      "password_old": "04x$?S84p!IFHk",
      "password_new": "04x$?S84p!IFHke"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "status": 202,
      "timestamp": "2025-01-04T02:26:34Z"
    }

    Businesses

    POST Create Business

    {{baseURL}}/businesses

    Create Business

    The Create Business API allows a client to register a business entity associated with a specific customer. A business cannot exist independently; it must be linked to a customer. This API ensures compliance by requiring key details such as business description, industry, tax information, and compliance-related disclosures.


    Endpoint

    POST /businesses


    Description

    This API creates a new business entity linked to an existing customer. The request requires a valid customer_id, which must be active (ACT) and belong to the authenticated client_id.

    Mandatory fields include:

  • Business Name and Description
  • Taxpayer ID (with type)
  • Industry Type
  • Compliance-related questions
  • Main Address and Mailing Address (both required)
  • All requests must comply with ISO standards for country codes (ISO 3166-1 alpha-3).


    Required Parameters

    General Business Information

    Parameter

    Location

    Type

    Description

    customer_id

    Body

    String

    The ID of the customer associated with this business. Must be an active customer belonging to the client.

    name

    Body

    String

    The official name of the business.

    DBA

    Body

    String

    The "Doing Business As" name if different from the legal name.

    description

    Body

    String

    A brief description of the business operations.

    industry

    Body

    String

    The industry in which the business operates. See industry list below.

    yearsInOperation

    Body

    String

    Number of years the business has been in operation.

    numberOfEmployees

    Body

    String

    The number of employees working in the business.

    estimatedYearlyRevenue

    Body

    String

    The estimated annual revenue of the business.

    phone

    Body

    Integer

    The contact phone number of the business.

    email

    Body

    String

    The official email address of the business.

    website

    Body

    String

    The website URL of the business.

    country

    Body

    String

    The country where the business operates, in ISO3 format (e.g., USA, GBR).


    Tax Information

    Parameter

    Location

    Type

    Description

    taxPayer_id

    Body

    String

    The business taxpayer identification number. Encrypted in storage.

    taxPayer_id_type

    Body

    String

    The type of taxpayer identification. See allowed values below.

    Business Compliance Questions

    Each of these fields is required and must be either true or false.

    Parameter

    Location

    Type

    Description

    compliance_inForeignPol

    Body

    Boolean

    Does this business operate in foreign politics?

    compliance_takingCharity

    Body

    Boolean

    Does this business accept charity donations?

    compliance_moneyTransmitter

    Body

    Boolean

    Is this business involved in money transmission activities?

    compliance_thirdPartyTxs

    Body

    Boolean

    Does this business process transactions for third parties?

    compliance_onlineGambling

    Body

    Boolean

    Is this business involved in online gambling?

    compliance_ownATMs

    Body

    Boolean

    Does this business own and operate ATMs?


    Addresses (Main & Mailing)

    Both main_address and mailing_address are mandatory and must be valid objects with the following structure:

    Address Object Format

    {

    "addressLine1": "123 Business Street",

    "addressLine2": "Suite 200",

    "cityLocale": "New York",

    "stateRegion": "NY",

    "postalCode": "10001",

    "country": "USA"

    }

    Required Fields for Addresses

    Parameter

    Location

    Type

    Description

    addressLine1

    Body

    String

    The primary address line.

    cityLocale

    Body

    String

    The city where the business operates.

    stateRegion

    Body

    String

    The state or region of operation.

    postalCode

    Body

    String

    The postal code (ZIP Code).

    country

    Body

    String

    The country (ISO3 format, e.g., USA).

    Supported Taxpayer ID Types

    Type

    Description

    Expected Format

    SSN

    Social Security Number (U.S.)

    XXX-XX-XXXX

    EIN

    Employer Identification Number (U.S.)

    XX-XXXXXXX

    ITIN

    Individual Taxpayer Identification Number (U.S.)

    9XX-XX-XXXX

    NINO

    National Insurance Number (UK)

    XX999999X

    GSTIN

    Goods and Services Taxpayer Identification Number (India)

    15 Alphanumeric Characters

    ABN

    Australian Business Number

    11 Digits

    PAN

    Permanent Account Number (India)

    XXXXX9999X

    NIF

    Número de Identificación Fiscal (Spain)

    X9999999T

    CPF

    Cadastro de Pessoas Físicas (Brazil)

    XXX.XXX.XXX-XX

    CNPJ

    Cadastro Nacional da Pessoa Jurídica (Brazil)

    XX.XXX.XXX/0001-XX

    TIN

    Generic Taxpayer ID

    No format restriction

    ETIN

    Electronic Taxpayer Identification Number

    No format restriction

    OTHER

    Any other taxpayer ID type

    No format restriction

    Allowed Values for industry

    ID

    Industry

    39

    Aerospace

    40

    Agriculture

    41

    Automotive

    42

    Broadcasting

    43

    Chemical

    44

    Computer

    45

    Construction

    46

    Defense & Arms

    47

    Education

    48

    Electrical Power

    49

    Electronics

    50

    Energy

    51

    Entertainment

    52

    Film

    53

    Financial

    54

    Fishing

    55

    Food

    56

    Healthcare

    57

    Hospitality

    58

    Information Services

    59

    Insurance

    60

    Internet

    61

    Manufacturing

    62

    Mining

    63

    Music

    64

    News Media

    65

    Petroleum

    66

    Pharmaceutical

    67

    Publishing

    68

    Shipbuilding

    69

    Software

    70

    Steel

    71

    Telecommunications

    72

    Timber, Pulp & Paper

    73

    Tobacco

    74

    Transportation

    75

    Water

    Validation Rules

  • Customer must be active (ACT) and belong to the authenticated client.
  • Country must be in ISO 3166-1 alpha-3 format (USA, GBR, etc.).
  • Main Address and Mailing Address are both required and must contain valid fields.
  • All compliance fields must be explicitly true or false (no null/empty values).
  • Phone must reference an existing phone number record in the phoneNumbers model.
  • Industry must be one of the predefined values listed above.

  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Country must be in ISO3 format.

    400

    Missing Requirement(s)

    Required fields are missing from the request.

    400

    Invalid Address

    Address fields are missing or incorrectly formatted.

    400

    Customer Not Active

    The customer associated with this business is not active.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/businesses' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{ "customer_id": "CID250103061236-6AT5DW-KSGN24", "name": "ACME Corporation", "description": "This is construction company located in the midwest", "country": "USA", "industry": 40, "email": "acme@acme.com", "phone": { "number": "1188771234", "countryCode": "61", "country": "AUS", "type": "M" }, "main_address": { "addressLine1": "42 Wallaby Way", "cityLocale": "Sydney", "stateRegion": "NSW", "postalCode": "2000", "country": "AUS" }, "mailing_address": { "addressLine1": "42 Wallaby Way", "cityLocale": "Sydney", "stateRegion": "NSW", "postalCode": "2000", "country": "AUS" }, "taxPayer_id": "99-9999999", "taxPayer_id_type": "EIN", "compliance_inForeignPol": false, "compliance_takingCharity": false, "compliance_moneyTransmitter": false, "compliance_thirdPartyTxs": false, "compliance_onlineGambling": false, "compliance_ownATMs": false }'
    JSON body
    {
      "customer_id": "CID250103061236-6AT5DW-KSGN24",
      "name": "ACME Corporation",
      "description": "This is construction company located in the midwest",
      "country": "USA",
      "industry": 40,
      "email": "acme@acme.com",
      "phone": {
        "number": "1188771234",
        "countryCode": "61",
        "country": "AUS",
        "type": "M"
      },
      "main_address": {
        "addressLine1": "42 Wallaby Way",
        "cityLocale": "Sydney",
        "stateRegion": "NSW",
        "postalCode": "2000",
        "country": "AUS"
      },
      "mailing_address": {
        "addressLine1": "42 Wallaby Way",
        "cityLocale": "Sydney",
        "stateRegion": "NSW",
        "postalCode": "2000",
        "country": "AUS"
      },
      "taxPayer_id": "99-9999999",
      "taxPayer_id_type": "EIN",
      "compliance_inForeignPol": false,
      "compliance_takingCharity": false,
      "compliance_moneyTransmitter": false,
      "compliance_thirdPartyTxs": false,
      "compliance_onlineGambling": false,
      "compliance_ownATMs": false
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "business_id": "BID250114045037-ELRZR862RL",
        "status": "NEW",
        "name": "ACME Corporation",
        "DBA": null,
        "description": "This is construction company located in the midwest",
        "taxPayer_id": "YWVzLTI1Ni1nY20kJGRlZmF1bHQ=$rptchS7Rq+tSMMPI$/u2RiJ9Cx3J8/3WC$P0xoYlVhkOnvy0X3HEpoGw",
        "taxPayer_id_type": "EIN",
        "yearsInOperation": null,
        "numberOfEmployees": null,
        "estimatedYearlyRevenue": null,
        "email": "acme@acme.com",
        "website": null,
        "country": "USA",
        "compliance_inForeignPol": false,
        "compliance_takingCharity": false,
        "compliance_moneyTransmitter": false,
        "compliance_thirdPartyTxs": false,
        "compliance_onlineGambling": false,
        "compliance_ownATMs": false,
        "isDeleted": false,
        "createdAt": "2025-01-13T23:48:43.000Z",
        "updatedAt": "2025-01-14T04:50:37.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": "CID250103061236-6AT5DW-KSGN24",
        "industry": 40,
        "phone": 19,
        "main_address": 21,
        "mailing_address": 22
      },
      "url": "/businesses",
      "status": 201,
      "timestamp": "2025-01-14T04:50:37Z"
    }

    GET List Businesses

    {{baseURL}}/businesses

    List Businesses

    Retrieves a list of businesses associated with the authenticated client.


    Endpoint

    GET /businesses

    Description

    This API fetches a list of businesses linked to the authenticated client. The response includes essential business details such as business ID, name, status, industry, country, and creation date.

    Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Client authentication failed.

    500

    Unexpected Error

    An internal server error occurred.

    Example Request

    curl

    curl --location -g '{{baseURL}}/businesses'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": [
        {
          "business_id": "BID250114045037-ELRZR862RL",
          "status": "NEW",
          "name": "ACME Corporation",
          "DBA": null,
          "description": "This is construction company located in the midwest",
          "taxPayer_id": "99-9999999",
          "taxPayer_id_type": "EIN",
          "yearsInOperation": null,
          "numberOfEmployees": null,
          "estimatedYearlyRevenue": null,
          "email": "acme@acme.com",
          "website": null,
          "country": "USA",
          "compliance_inForeignPol": false,
          "compliance_takingCharity": false,
          "compliance_moneyTransmitter": false,
          "compliance_thirdPartyTxs": false,
          "compliance_onlineGambling": false,
          "compliance_ownATMs": false,
          "isDeleted": false,
          "createdAt": "2025-01-13T23:48:43.000Z",
          "updatedAt": "2025-01-14T04:50:37.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103061236-6AT5DW-KSGN24",
          "industry": 40,
          "phone": 19,
          "main_address": 21,
          "mailing_address": 22
        }
      ],
      "url": "/businesses",
      "status": 200,
      "timestamp": "2025-01-14T14:40:57Z"
    }

    GET Business Details

    {{baseURL}}/businesses/BID250114045037-ELRZR862RL

    Get Business Details

    Retrieves the details of a specific business by its business_id, including customer information, industry, phone, and addresses.


    Endpoint

    GET /businesses/:business_id

    Description

    This API fetches a single business record with full details, including linked customer information, industry, phone, and addresses. The business must belong to the authenticated client_id.


    Required Parameters

    Parameter

    Location

    Type

    Description

    business_id

    Path

    String

    The unique business identifier.

    Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Client authentication failed.

    404

    Not Found

    The business does not exist or does not belong to the client.

    500

    Unexpected Error

    An internal server error occurred.

    Example Request

    curl

    curl --location -g '{{baseURL}}/businesses/BID250114045037-ELRZR862RL'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "business_id": "BID250114045037-ELRZR862RL",
        "status": "NEW",
        "name": "ACME Corporation",
        "DBA": null,
        "description": "This is construction company located in the midwest",
        "taxPayer_id": "99-9999999",
        "taxPayer_id_type": "EIN",
        "yearsInOperation": null,
        "numberOfEmployees": null,
        "estimatedYearlyRevenue": null,
        "email": "acme@acme.com",
        "website": null,
        "country": "USA",
        "compliance_inForeignPol": false,
        "compliance_takingCharity": false,
        "compliance_moneyTransmitter": false,
        "compliance_thirdPartyTxs": false,
        "compliance_onlineGambling": false,
        "compliance_ownATMs": false,
        "isDeleted": false,
        "createdAt": "2025-01-13T23:48:43.000Z",
        "updatedAt": "2025-01-14T04:50:37.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": {
          "customer_id": "CID250103061236-6AT5DW-KSGN24",
          "status": "ACT",
          "firstName": "Anna2",
          "middleName": null,
          "lastName": "Smith",
          "maidenName": null,
          "suffix": null,
          "nickname": null,
          "email": "annera.smith@example.com",
          "DOB": "1998-03-28T00:00:00.000Z",
          "birthplace": null,
          "nationality": null,
          "occupation": null,
          "taxPayer_id": "600-10-1111",
          "taxPayer_id_type": "TFN",
          "primaryCitizenship": "AUS",
          "secondaryCitizenship": null,
          "isPEP": false,
          "isUS": false,
          "isSeniorPolFig": false,
          "isFamilySeniorPolFig": false,
          "isDeleted": false,
          "createdAt": "2025-01-03T01:07:06.000Z",
          "updatedAt": "2025-01-11T21:49:17.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "mobile": 16,
          "homePhone": null,
          "workPhone": null,
          "residential_address": 15,
          "mailing_address": 16
        },
        "industry": {
          "id": 40,
          "name": "Agriculture"
        },
        "phone": {
          "id": 19,
          "number": "1188771234",
          "countryCode": "61",
          "country": "AUS",
          "type": "M",
          "createdAt": "2025-01-13T23:50:36.000Z"
        },
        "main_address": {
          "id": 21,
          "addressLine1": "42 Wallaby Way",
          "addressLine2": null,
          "cityLocale": "Sydney",
          "stateRegion": "NSW",
          "postalCode": "2000",
          "createdAt": "2025-01-13T23:50:36.000Z",
          "updatedAt": "2025-01-14T04:50:37.000Z",
          "country": "AUS"
        },
        "mailing_address": {
          "id": 22,
          "addressLine1": "42 Wallaby Way",
          "addressLine2": null,
          "cityLocale": "Sydney",
          "stateRegion": "NSW",
          "postalCode": "2000",
          "createdAt": "2025-01-13T23:50:37.000Z",
          "updatedAt": "2025-01-14T04:50:37.000Z",
          "country": "AUS"
        }
      },
      "url": "/businesses/BID250114045037-ELRZR862RL",
      "status": 200,
      "timestamp": "2025-01-14T14:42:21Z"
    }

    PUT Update Business

    {{baseURL}}/businesses/BID250114045037-ELRZR862RL

    Update Business

    The Update Business API allows clients to update details of an existing business associated with a customer. Certain fields such as business_id, customer_id, client_id, createdAt, and updatedAt cannot be modified.

    Endpoint

    PUT /businesses/:business_id

    Description

    This API updates the details of a specific business associated with a customer. The request must include the business_id in the URL path. The business must exist and belong to the authenticated client_id.


    Restricted Fields (Cannot Be Updated)

    The following fields CANNOT be updated via this API:

  • business_id
  • customer_id
  • client_id
  • createdAt
  • updatedAt

  • Required Parameters

    Parameter

    Location

    Type

    Description

    business_id

    Path

    String

    The unique ID of the business to be updated.


    Optional Updatable Fields

    Parameter

    Location

    Type

    Description

    status

    Body

    String

    The updated status of the business (e.g., NEW, ACT, PND).

    name

    Body

    String

    The updated legal name of the business.

    DBA

    Body

    String

    The updated "Doing Business As" name.

    description

    Body

    String

    The updated description of the business.

    taxPayer_id

    Body

    String

    The updated taxpayer identification number. Must match the format of the selected taxPayer_id_type.

    taxPayer_id_type

    Body

    String

    The updated taxpayer ID type. See allowed values below.

    industry

    Body

    Integer

    The updated industry ID. Must be a valid ID from the industries list.

    yearsInOperation

    Body

    String

    The updated number of years the business has been in operation.

    numberOfEmployees

    Body

    String

    The updated number of employees in the business.

    estimatedYearlyRevenue

    Body

    String

    The updated estimated yearly revenue of the business.

    phone

    Body

    Object

    The updated phone details. See format below.

    email

    Body

    String

    The updated business email.

    website

    Body

    String

    The updated website URL.

    main_address

    Body

    Object

    The updated main business address. See format below.

    mailing_address

    Body

    Object

    The updated mailing business address. See format below.

    country

    Body

    String

    The updated country of operation (ISO3 format).

    compliance_inForeignPol

    Body

    Boolean

    Whether the business operates in foreign politics.

    compliance_takingCharity

    Body

    Boolean

    Whether the business accepts charitable donations.

    compliance_moneyTransmitter

    Body

    Boolean

    Whether the business operates as a money transmitter.

    compliance_thirdPartyTxs

    Body

    Boolean

    Whether the business processes third-party transactions.

    compliance_onlineGambling

    Body

    Boolean

    Whether the business is involved in online gambling.

    compliance_ownATMs

    Body

    Boolean

    Whether the business owns ATMs.

    Phone Object Format

    {

    "number": "18005551234",

    "countryCode": "+1",

    "country": "USA",

    "type": "M"

    }

    Address Object Format

    {

    "addressLine1": "456 Corporate Ave",

    "addressLine2": "Suite 101",

    "cityLocale": "Los Angeles",

    "stateRegion": "CA",

    "postalCode": "90001",

    "country": "USA"

    }

    Allowed Taxpayer ID Types

    Type

    Expected Format

    SSN

    XXX-XX-XXXX

    EIN

    XX-XXXXXXX

    ITIN

    9XX-XX-XXXX

    NINO

    XX999999X

    GSTIN

    15 Alphanumeric Characters

    ABN

    11 Digits

    PAN

    XXXXX9999X

    NIF

    X9999999T

    CPF

    XXX.XXX.XXX-XX

    CNPJ

    XX.XXX.XXX/0001-XX

    TIN

    No format restriction

    ETIN

    No format restriction

    OTHER

    No format restriction


    Allowed Industry IDs

    Refer to the industry list used in the Create Business API for the valid industry IDs.

    Validation Rules

  • taxPayer_id must match the expected format for the provided taxPayer_id_type.
  • industry must be a valid industry ID from the list.
  • phone must be a valid phone object.
  • main_address and mailing_address, if provided, must follow the required address structure.
  • country must be in ISO 3166-1 alpha-3 format (e.g., USA, GBR, IND).

  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    The request contains invalid or improperly formatted data.

    400

    Missing Requirement(s)

    The request is missing required parameters.

    400

    Restricted Update

    Attempted to update restricted fields (business_id, customer_id, etc.).

    404

    Not Found

    The business ID does not exist or does not belong to this client.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/businesses/BID250114045037-ELRZR862RL' \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{ "name": "ACME Corporation LLC.", "industry": 41, "email": "acmecllc@acme.com", "phone": { "number": "8005554445", "countryCode": "1", "country": "USA", "type": "M" }, "main_address": { "addressLine1": "1125 Burn Rate", "cityLocale": "Kansas City", "stateRegion": "KY", "postalCode": "66063", "country": "USA" }, "compliance_thirdPartyTxs": false }'
    JSON body
    {
      "name": "ACME Corporation LLC.",
      "industry": 41,
      "email": "acmecllc@acme.com",
      "phone": {
        "number": "8005554445",
        "countryCode": "1",
        "country": "USA",
        "type": "M"
      },
      "main_address": {
        "addressLine1": "1125 Burn Rate",
        "cityLocale": "Kansas City",
        "stateRegion": "KY",
        "postalCode": "66063",
        "country": "USA"
      },
      "compliance_thirdPartyTxs": false
    }

    Example Response

    200 OK

    Body

    {
      "data": {
        "business_id": "BID250114045037-ELRZR862RL",
        "status": "NEW",
        "name": "ACME Corporation Limited",
        "DBA": null,
        "description": "This is construction company located in the midwest. Kansas native.",
        "taxPayer_id": "YWVzLTI1Ni1nY20kJGRlZmF1bHQ=$wvuE52sTii6LbFuW$J7ofg3VbS69EC3D9$55ExnJ8ZK4e1KKn8RLHFmA",
        "taxPayer_id_type": "EIN",
        "yearsInOperation": null,
        "numberOfEmployees": null,
        "estimatedYearlyRevenue": null,
        "email": "acmecorpk@acme.com",
        "website": null,
        "country": "USA",
        "compliance_inForeignPol": false,
        "compliance_takingCharity": false,
        "compliance_moneyTransmitter": false,
        "compliance_thirdPartyTxs": false,
        "compliance_onlineGambling": false,
        "compliance_ownATMs": false,
        "isDeleted": false,
        "createdAt": "2025-01-13T23:48:43.000Z",
        "updatedAt": "2025-01-14T16:09:52.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": "CID250103061236-6AT5DW-KSGN24",
        "industry": 40,
        "phone": 20,
        "main_address": 23,
        "mailing_address": 22
      },
      "status": 202,
      "url": "/businesses/BID250114045037-ELRZR862RL",
      "description": "Business details successfully updated."
    }

    DELETE Remove Business

    {{baseURL}}/businesses/BID250114045037-ELRZR862RL

    Remove Business

    The Remove Business API allows a client to soft-delete a business associated with a customer. The business remains in the system but is marked as deleted (isDeleted: true), preventing further transactions or updates.


    Endpoint

    DELETE /businesses/:business_id


    Description

    This API is used to remove a business by setting its isDeleted field to true. It does not permanently delete the business from the database. A removed business can be reinstated using the Reinstate Business API.

    A history record of the removal action will be stored in the BusinessesHistory model.


    Required Parameters

    Parameter

    Location

    Type

    Description

    business_id

    Path

    String

    The unique identifier of the business to be removed.

    notes

    Body

    String

    A reason for removing the business.


    Validation Rules

  • The business_id must exist and belong to the authenticated client.
  • The business must not already be deleted.
  • The notes field is required and provides context for the removal.

  • Error Handling

    Error Code

    Reason

    Description

    400

    Missing Requirement(s)

    The notes field is required.

    404

    Not Found

    The business_id does not exist or is already deleted.

    500

    Unexpected Error

    An internal server error occurred.

    Example Request

    curl

    curl --location -g '{{baseURL}}/businesses/BID250114045037-ELRZR862RL'
    JSON body
    {
      "notes": "Remove this business as a test. Part 2."
    }

    No example response in the published collection.

    PUT Reinstate Business

    {{baseURL}}/businesses/BID250114045037-ELRZR862RL/reinstate

    Reinstate Business

    The Reinstate Business API allows a client to restore a previously removed business by setting its isDeleted field back to false.


    Endpoint

    PATCH /businesses/:business_id/reinstate


    Description

    This API reactivates a previously removed business, allowing it to be used for transactions and other operations. A history record of the reinstatement action will be stored in the BusinessesHistory model.


    Required Parameters

    Parameter

    Location

    Type

    Description

    business_id

    Path

    String

    The unique identifier of the business to be reinstated.

    notes

    Body

    String

    A reason for reinstating the business.

    Error Handling

    Error Code

    Reason

    Description

    400

    Missing Requirement(s)

    The notes field is required.

    404

    Not Found

    The business_id does not exist or is not in a deleted state.

    500

    Unexpected Error

    An internal server error occurred.

    Example Request

    curl

    curl --location -g '{{baseURL}}/businesses/BID250114045037-ELRZR862RL/reinstate' \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{ "notes": "I am reinstating this business because it is needed again." }'
    JSON body
    {
      "notes": "I am reinstating this business because it is needed again."
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "message": "Business reinstated successfully."
      },
      "url": "/businesses/BID250114045037-ELRZR862RL/reinstate",
      "status": 202,
      "timestamp": "2025-01-15T03:06:07Z"
    }

    Accounts

    POST Request Account

    {{baseURL}}/accounts

    Request Account

    The Request Account API allows clients to create a new financial account for a customer. The account is initially set to Pending (PND) status, requiring approval by a bank administrator before activation. Each request must specify the account type, category, and currency.

    Endpoint

    POST /accounts/request

    Description

    This API enables clients to request the creation of a new account. The system will generate a unique account number based on the account type and ensure that duplicate pending requests for the same customer and account type are not allowed.

    Upon successful creation, the account is logged in the account history with an action of "REQUESTED" and the default origin as "API".

    Required Parameters

  • customer_id (in body) – The unique identifier of the customer for whom the account is being created.
  • account_type (in body) – The type of account being requested.
  • category (in body) – The category of the account, either B (Business) or C (Consumer/Personal).
  • currency (in body) – The currency type of the account. Accepted values: USD, GBP, EUR.
  • Account Types

  • Business Accounts:
  • BDCA – Business Custody
  • BDDA – Business DDA
  • BSAV – Business Savings
  • BCOD – Business CD
  • BLON – Business Loan
  • Consumer Accounts:
  • CDCA – Consumer Custody
  • CDDA – Consumer DDA
  • CSAV – Consumer Savings
  • CCOD – Consumer CD
  • CLON – Consumer Loan
  • CNOW – Consumer NOW
  • Validation Rules

  • customer_id, account_type, category, and currency are required fields.
  • The account_type must match the category:
  • Business (B) can only request BDCA, BDDA, BSAV, BCOD, BLON.
  • Consumer (C) can only request CDCA, CDDA, CSAV, CCOD, CLON, CNOW.
  • The currency must be one of USD, GBP, EUR.
  • A customer cannot request multiple accounts of the same account_type if there is already a pending (PND) request for that account type.
  • The system ensures the generated account number is unique.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/accounts' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{ "customer_id": "CID250103014042-RAFVZE-98TWFD", "account_type": "CSAV", "category": "C", "currency": "USD" }'
    JSON body
    {
      "customer_id": "CID250103014042-RAFVZE-98TWFD",
      "account_type": "CSAV",
      "category": "C",
      "currency": "USD"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "account_id": 2,
        "account_no": "2175544749318837",
        "account_type": "BDDA",
        "category": "B",
        "status": "PND",
        "description": "BDDA",
        "nickname": null,
        "balance": 0,
        "balance_available": 0,
        "isDeleted": false,
        "openedAt": null,
        "closedAt": null,
        "closedReason": null,
        "createdAt": "2025-01-04T14:22:54.000Z",
        "updatedAt": "2025-01-04T19:23:06.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": "CID250103014042-RAFVZE-98TWFD",
        "currency": "USD"
      },
      "status": 201,
      "timestamp": "2025-01-04T19:23:06Z"
    }

    GET List Accounts

    {{baseURL}}/accounts

    List Accounts

    The List Accounts API allows clients to retrieve all accounts associated with their client ID. This API supports filtering, sorting, and pagination to efficiently retrieve account data.

    Endpoint

    GET /accounts

    Description

    This API enables clients to retrieve a list of accounts linked to their client ID. It supports optional query parameters for sorting, filtering, and pagination.

    Required Parameters

    None

    Optional Parameters

  • sort (in query) – Specifies sorting of results in the format {field}:{direction}. Allowed fields: account_no, account_type, category, status, createdAt. Direction can be ASC or DESC.
  • limit (in query) – Defines the number of records to return per page. Default is 50.
  • page (in query) – Specifies the page number of results. Default is 1.
  • filter (in query) – Allows filtering of results based on account attributes.
  • Response Fields

  • total – The total number of accounts available.
  • data – An array of account objects.
  • url – The requested URL.
  • next – The URL for the next page of results (if applicable).
  • status – The HTTP status code.
  • timestamp – The timestamp when the response was generated.
  • Validation Rules

  • The sort parameter must be in the format {field}:{direction} and use only allowed fields.
  • The limit parameter must be a positive integer.
  • The page parameter must be a positive integer.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/accounts'
    JSON body
    {
      "customer_id": "CID250103014042-RAFVZE-98TWFD",
      "account_type": "BDDA",
      "category": "B",
      "currency": "USD"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": [
        {
          "account_id": 2,
          "account_no": "2175544749318837",
          "account_type": "BDDA",
          "category": "B",
          "status": "PND",
          "description": "BDDA",
          "nickname": null,
          "balance": 0,
          "balance_available": 0,
          "isDeleted": false,
          "openedAt": null,
          "closedAt": null,
          "closedReason": null,
          "createdAt": "2025-01-04T14:22:54.000Z",
          "updatedAt": "2025-01-04T19:23:06.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD"
        }
      ],
      "url": "/accounts",
      "status": 200,
      "timestamp": "2025-01-04T20:21:48Z",
      "total": 1
    }

    GET Account Details

    {{baseURL}}/accounts/2

    Get Account Details

    The Get Account Details API allows clients to retrieve full details for a specific account, including account history.

    Endpoint

    GET /accounts/:account_id

    Description

    This API enables clients to fetch all details of a specific account using the account_id. It includes associated data such as currency details and account history.

    Required Parameters

  • account_id (in path) – The unique identifier of the account to retrieve.
  • Response Fields

  • account_id – The unique identifier of the account.
  • client_id – The client to which the account belongs.
  • customer_id – The customer associated with the account.
  • account_no – The account number.
  • account_type – The type of the account.
  • category – Whether the account is Business (B) or Consumer (C).
  • status – The current status of the account.
  • description – The description of the account type.
  • currency – The currency type of the account.
  • balance – The current account balance.
  • balance_available – The available balance for transactions.
  • openedAt – The date the account was opened.
  • closedAt – The date the account was closed (if applicable).
  • account_history – A list of recorded actions and changes associated with the account.
  • createdAt – The timestamp of account creation.
  • updatedAt – The last update timestamp.
  • Validation Rules

  • The account_id must exist and belong to the requesting client.
  • The account must not be marked as deleted (isDeleted = false).
  • Example Request

    curl

    curl --location -g '{{baseURL}}/accounts/2'
    JSON body
    {
      "customer_id": "CID250103014042-RAFVZE-98TWFD",
      "account_type": "BDDA",
      "category": "B",
      "currency": "USD"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "account_id": 2,
        "account_no": "2175544749318837",
        "account_type": "BDDA",
        "category": "B",
        "status": "PND",
        "description": "BDDA",
        "nickname": null,
        "balance": 0,
        "balance_available": 0,
        "isDeleted": false,
        "openedAt": null,
        "closedAt": null,
        "closedReason": null,
        "createdAt": "2025-01-04T14:22:54.000Z",
        "updatedAt": "2025-01-04T19:23:06.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": {
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "status": "PND",
          "firstName": "John",
          "middleName": null,
          "lastName": "Doe",
          "maidenName": null,
          "suffix": null,
          "nickname": null,
          "email": "john.doe@example.com",
          "DOB": "1990-05-22T00:00:00.000Z",
          "birthplace": null,
          "nationality": null,
          "occupation": null,
          "taxPayer_id": "400-20-1112",
          "taxPayer_id_type": "SSN",
          "primaryCitizenship": "GBR",
          "secondaryCitizenship": null,
          "isPEP": true,
          "isUS": false,
          "isSeniorPolFig": false,
          "isFamilySeniorPolFig": false,
          "isDeleted": false,
          "createdAt": "2025-01-02T20:36:58.000Z",
          "updatedAt": "2025-01-03T01:40:42.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "mobile": 12,
          "homePhone": null,
          "workPhone": null,
          "residential_address": 7,
          "mailing_address": 8
        },
        "currency": {
          "code": "USD",
          "symbol": "$",
          "name": "US Dollar",
          "symbol_native": "$",
          "decimal_digits": 2,
          "rounding": 0,
          "name_plural": "US dollars"
        }
      },
      "url": "/accounts/2",
      "status": 200,
      "timestamp": "2025-01-04T20:24:50Z"
    }

    GET Account Balance

    {{baseURL}}/accounts/2/getBalance

    Get Account Details

    The Get Account Details API allows clients to retrieve full details for a specific account, including account history.

    Endpoint

    GET /accounts/:account_id

    Description

    This API enables clients to fetch all details of a specific account using the account_id. It includes associated data such as currency details and account history.

    Required Parameters

  • account_id (in path) – The unique identifier of the account to retrieve.
  • Response Fields

  • account_id – The unique identifier of the account.
  • client_id – The client to which the account belongs.
  • customer_id – The customer associated with the account.
  • account_no – The account number.
  • account_type – The type of the account.
  • category – Whether the account is Business (B) or Consumer (C).
  • status – The current status of the account.
  • description – The description of the account type.
  • currency – The currency type of the account.
  • balance – The current account balance.
  • balance_available – The available balance for transactions.
  • openedAt – The date the account was opened.
  • closedAt – The date the account was closed (if applicable).
  • account_history – A list of recorded actions and changes associated with the account.
  • createdAt – The timestamp of account creation.
  • updatedAt – The last update timestamp.
  • Validation Rules

  • The account_id must exist and belong to the requesting client.
  • The account must not be marked as deleted (isDeleted = false).
  • Example Request

    curl

    curl --location -g '{{baseURL}}/accounts/2/getBalance'
    JSON body
    {
      "customer_id": "CID250103014042-RAFVZE-98TWFD",
      "account_type": "BDDA",
      "category": "B",
      "currency": "USD"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "balance": 0,
        "balance_available": 0,
        "currency": "USD"
      },
      "url": "/accounts/2/getBalance",
      "status": 200,
      "timestamp": "2025-01-04T22:16:35Z"
    }

    PUT Deactivate Account

    {{baseURL}}/accounts/2/deactivate

    Deactivate Account

    The Deactivate Account API allows clients to modify the status of an active account. This API ensures that only accounts in an Active (ACT) state can have their status changed. Pending accounts (PND) must be approved by a bank administrator before they can be modified.

    Endpoint

    PUT /accounts/:account_id/status

    Description

    This API enables clients to change the status of an account for specific scenarios, including freezing, suspending, closing, marking as dormant, locking, and restricting an account. The status update must be accompanied by a reason in the notes field.

    Only accounts in Active (ACT) status can be modified via this API.

    Required Parameters

  • account_id (in path) – The unique identifier of the account to be modified.
  • status (in body) – The new status to be applied to the account.
  • notes (in body) – A required description of the reason for the status change.
  • Allowed Status Changes

  • FRZ (Frozen) – Account is frozen due to investigation.
  • SUS (Suspended) – Account is suspended due to issues like missed payments.
  • CLO (Closed) – Account is permanently closed.
  • DRM (Dormant) – Account has had no activity for an extended period.
  • LCK (Locked) – Account is locked due to failed logins or security concerns.
  • RES (Restricted) – Account has limited functionality due to compliance or legal issues.
  • Validation Rules

  • The account must be in an ACT (Active) state to change its status.
  • The notes field is required and must contain a reason for the status change.
  • Only the statuses listed above are allowed.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/accounts/2/deactivate' \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{ "status": "FRZ", "notes": "This account is being frozen due to weird account behavior" }'
    JSON body
    {
      "status": "FRZ",
      "notes": "This account is being frozen due to weird account behavior"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "account_id": 2,
        "account_no": "2175544749318837",
        "account_type": "BDDA",
        "category": "B",
        "status": "FRZ",
        "description": "BDDA",
        "nickname": null,
        "balance": 0,
        "balance_available": 0,
        "isDeleted": false,
        "openedAt": null,
        "closedAt": null,
        "closedReason": null,
        "createdAt": "2025-01-04T14:22:54.000Z",
        "updatedAt": "2025-01-04T21:48:15.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": "CID250103014042-RAFVZE-98TWFD",
        "currency": "USD"
      },
      "url": "/accounts/2/status",
      "status": 202,
      "timestamp": "2025-01-04T21:48:15Z"
    }

    PUT Reactivate Account

    {{baseURL}}/accounts/2/reactivate

    Reactivate Account

    The Reactivate Account API allows clients to restore a previously deactivated account to Active (ACT) status. This API ensures that only accounts that were Frozen (FRZ), Suspended (SUS), Dormant (DRM), Locked (LCK), or Restricted (RES) can be reactivated.

    Endpoint

    PUT /accounts/:account_id/reactivate

    Description

    This API enables clients to restore an account's full functionality by reactivating it. Reactivation applies only to accounts that were previously deactivated but does not apply to accounts in a Closed (CLO) status.

    The request must include a reason for reactivation in the notes field.

    Required Parameters

  • account_id (in path) – The unique identifier of the account to be reactivated.
  • notes (in body) – A required description of the reason for reactivating the account.
  • Allowed Status Changes

  • FRZ (Frozen) → ACT (Active) – Account was frozen and is now reactivated.
  • SUS (Suspended) → ACT (Active) – Account was suspended and is now reactivated.
  • DRM (Dormant) → ACT (Active) – Account was inactive for an extended period and is now reactivated.
  • LCK (Locked) → ACT (Active) – Account was locked due to security reasons and is now reactivated.
  • RES (Restricted) → ACT (Active) – Account had limited functionality and is now reactivated.
  • Validation Rules

  • Only accounts with a status of FRZ, SUS, DRM, LCK, or RES can be reactivated.
  • Accounts in CLO (Closed) status cannot be reactivated.
  • The notes field is required and must contain a reason for the reactivation.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/accounts/2/reactivate' \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{ "notes": "This account is being re-opened. It passed checks." }'
    JSON body
    {
      "notes": "This account is being re-opened. It passed checks."
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "account_id": 2,
        "account_no": "2175544749318837",
        "account_type": "BDDA",
        "category": "B",
        "status": "ACT",
        "description": "BDDA",
        "nickname": null,
        "balance": 0,
        "balance_available": 0,
        "isDeleted": false,
        "openedAt": null,
        "closedAt": null,
        "closedReason": null,
        "createdAt": "2025-01-04T14:22:54.000Z",
        "updatedAt": "2025-01-04T21:48:55.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": "CID250103014042-RAFVZE-98TWFD",
        "currency": "USD"
      },
      "url": "/accounts/2/reactivate",
      "status": 202,
      "timestamp": "2025-01-04T21:48:56Z"
    }

    Send Money

    POST Send Wire

    {{baseURL}}/funding/withdraw/wire

    Withdraw Wire

    The Withdraw Wire API allows clients to initiate a wire transfer from their account to an external beneficiary. This withdrawal follows the SWIFT MT103 format, ensuring compliance with international and domestic wire transfer standards.

    Endpoint

    POST /funding/withdraw/wire

    Description

    This API processes an outgoing wire transfer, deducting funds from the client's account and sending them to a specified beneficiary. The required details differ depending on whether the wire is domestic (U.S.) or international (Non-U.S.).


    Required Parameters

    Parameter

    Location

    Type

    Description

    account_id

    Body

    Integer

    The ID of the account from which the funds will be withdrawn.

    customer_id

    Body

    String

    The ID of the customer initiating the wire transfer.

    amount

    Body

    Decimal

    The amount to be withdrawn. Must be a number greater than zero.

    currency

    Body

    String

    The currency of the wire transfer (e.g., "USD").

    instruction_code

    Body

    String

    The transaction instruction code. See allowed values below.

    isUS

    Body

    Boolean

    Indicates whether the wire is domestic (true) or international (false).

    beneficiary_name

    Body

    String

    The full name of the beneficiary.

    beneficiary_account_number

    Body

    String

    The account number of the beneficiary.

    beneficiary_bank

    Body

    String

    The name of the beneficiary's bank.

    beneficiary_bank_address

    Body

    Object

    The address of the beneficiary's bank (see structure below).

    beneficiary_bank_bic_swift or beneficiary_bank_routing_no

    Body

    String

    Either the SWIFT/BIC code or the routing number of the beneficiary's bank is required.

    beneficiary_address

    Body

    Object

    The address of the beneficiary (see structure below).

    notes

    Body

    String

    The payment notes or remittance information for the wire.

    Beneficiary Address Object Format

    {

    "addressLine1": "123 Main St",

    "addressLine2": "Apt 4B",

    "cityLocale": "New York",

    "stateRegion": "NY",

    "postalCode": "10001",

    "country": "USA"

    }

    Beneficiary Bank Address Object Format

    {

    "addressLine1": "456 Bank Ave",

    "addressLine2": "Suite 200",

    "cityLocale": "Los Angeles",

    "stateRegion": "CA",

    "postalCode": "90001",

    "country": "USA"

    }

    Additional Required Fields for International Wires (isUS = false)

    Parameter

    Location

    Type

    Description

    intermediary_bank

    Body

    String

    The name of the intermediary bank handling the transaction.

    intermediary_bank_account

    Body

    String

    The account number at the intermediary bank.

    intermediary_address

    Body

    Object

    The address of the intermediary bank (see structure below).

    Intermediary Address Object Format

    {

    "addressLine1": "789 Finance Blvd",

    "addressLine2": "",

    "cityLocale": "London",

    "stateRegion": "",

    "postalCode": "SW1A 1AA",

    "country": "GBR"

    }

    Allowed Values for Instruction Code (four_block_23)

    Code

    Meaning

    CRED

    Payment to be credited to the beneficiary.

    HOLD

    Funds to be held for further instructions.

    PHOB

    Contact ordering bank for further details.

    PHOI

    Contact intermediary bank for further details.

    REPA

    Payment with remittance information.

    SDVA

    Same-day value transfer.


    Validation Rules

  • amount must be a valid number and greater than zero.
  • account_id must exist and have sufficient balance for the withdrawal.
  • If isUS = false, intermediary bank details (intermediary_bank, intermediary_bank_account, intermediary_address) must be provided.
  • The wire reference (wire_reference) is automatically generated.
  • The sender's correspondent (four_block_53) is predefined.
  • beneficiary_address.country, beneficiary_bank_address.country, and intermediary_address.country (if applicable) must be in ISO 3166-1 alpha-3 format.

  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Amount must be a valid number greater than zero.

    400

    Missing Requirement(s)

    Required fields are missing in the request.

    400

    Insufficient Funds

    Account balance is too low for this withdrawal.

    400

    Invalid Country Code

    The country must be in ISO3 format.

    404

    Not Found

    The account does not exist.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/withdraw/wire' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{ "customer_id": "CID250103014042-RAFVZE-98TWFD", "account_id": 2, "amount": 15.55, "currency": "USD", "instruction_code": "CRED", "beneficiary_name": "Sam Porter", "beneficiary_account_number": "15489489849", "beneficiary_address": { "addressLine1": "100 Bank Square", "addressLine2": "Apt 4H", "cityLocale": "Stockholm", "stateRegion": "New York", "postalCode": "10000", "country": "USA" }, "beneficiary_bank": "Bank of China", "beneficiary_bank_bic_swift": "CHZ090343", "beneficiary_bank_address": { "addressLine1": "Beenie Bank Plaza Squre", "addressLine2": "Suite 5", "cityLocale": "Delwone", "stateRegion": "Delaware", "postalCode": "48948", "country": "USA" }, "intermediary_bank": "Chase Manahttan Bank", "intermediary_bank_account": "222334456546", "intermediary_address": { "addressLine1": "Inter Me Ban", "addressLine2": "Suite 5", "cityLocale": "Delwone", "stateRegion": "Delaware", "postalCode": "48948", "country": "USA" }, "isUS": false, "notes": "This is a test" }'
    JSON body
    {
      "customer_id": "CID250103014042-RAFVZE-98TWFD",
      "account_id": 2,
      "amount": 15.55,
      "currency": "USD",
      "instruction_code": "CRED",
      "beneficiary_name": "Sam Porter",
      "beneficiary_account_number": "15489489849",
      "beneficiary_address": {
        "addressLine1": "100 Bank Square",
        "addressLine2": "Apt 4H",
        "cityLocale": "Stockholm",
        "stateRegion": "New York",
        "postalCode": "10000",
        "country": "USA"
      },
      "beneficiary_bank": "Bank of China",
      "beneficiary_bank_bic_swift": "CHZ090343",
      "beneficiary_bank_address": {
        "addressLine1": "Beenie Bank Plaza Squre",
        "addressLine2": "Suite 5",
        "cityLocale": "Delwone",
        "stateRegion": "Delaware",
        "postalCode": "48948",
        "country": "USA"
      },
      "intermediary_bank": "Chase Manahttan Bank",
      "intermediary_bank_account": "222334456546",
      "intermediary_address": {
        "addressLine1": "Inter Me Ban",
        "addressLine2": "Suite 5",
        "cityLocale": "Delwone",
        "stateRegion": "Delaware",
        "postalCode": "48948",
        "country": "USA"
      },
      "isUS": false,
      "notes": "This is a test"
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "transaction": {
          "transaction_id": 14,
          "direction": "O",
          "type": "WYR",
          "account_no": "2175544749318837",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "status": "PND",
          "amount": 15.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Wire Withdrawal - MB7Y8DMMRCBMFRTC",
          "line2": null,
          "trnCode": "5448",
          "isCredit": false,
          "isFee": false,
          "settledAt": null,
          "isReversal": false,
          "reversed_tx_id": null,
          "wire": {
            "id": 14,
            "status": "PND",
            "direction": "O",
            "four_block_20": "MB7Y8DMMRCBMFRTC",
            "four_block_23": ":23:CRED",
            "four_block_32": "250109USD15,55",
            "four_block_33": "USD15,55",
            "four_block_50": "2175544749318837\nJohn Doe\n10 Downing Street\nLondon ENG SW1A 2AA\nGBR",
            "four_block_53": "4500 4500032415 02\n MEDICI BANK INTERNATIONAL",
            "four_block_56": "222334456546\nChase Manahttan Bank\nInter Me Ban Suite 5\nDelwone Delaware 48948\nUSA",
            "four_block_57": "CHZ090343\nBank of China\nBeenie Bank Plaza Squre Suite 5\nDelwone Delaware 48948\nUSA",
            "four_block_59": "15489489849\nSam Porter\n100 Bank Square Apt 4H\nStockholm New York 10000\nUSA",
            "four_block_70": "This is a test",
            "four_block_71A": ":71A:OUR",
            "createdAt": "2025-01-09T15:13:02.000Z",
            "updatedAt": "2025-01-09T21:02:26.000Z"
          },
          "createdAt": "2025-01-09T15:13:02.000Z",
          "updatedAt": "2025-01-09T21:02:26.000Z"
        }
      },
      "url": "/funding/withdraw/wire",
      "status": 201,
      "timestamp": "2025-01-09T21:02:26Z"
    }

    POST Send ACH

    {{baseURL}}/funding/withdraw/ach

    Withdraw ACH

    The Withdraw ACH API allows clients to initiate an ACH transfer from their account to an external beneficiary. This withdrawal follows the NACHA ACH format and adheres to U.S. and international banking standards.

    Endpoint

    POST /funding/withdraw/ach

    Description

    This API processes an outgoing ACH transfer, deducting funds from the client's account and sending them to a specified beneficiary. The required details differ depending on whether the ACH is domestic (U.S.) or international (Non-U.S.).


    Required Parameters

    Parameter

    Location

    Type

    Description

    account_id

    Body

    Integer

    The ID of the account from which the funds will be withdrawn.

    customer_id

    Body

    String

    The ID of the customer initiating the ACH transfer.

    amount

    Body

    Decimal

    The amount to be withdrawn. Must be a number greater than zero.

    currency

    Body

    String

    The currency of the ACH transfer (e.g., "USD").

    ach_reference

    Body

    String

    A unique reference identifier for the ACH transaction.

    ach_type

    Body

    String

    A required business-defined ACH type.

    standard_entry_class

    Body

    String

    The NACHA Standard Entry Class (SEC) code. See allowed values below.

    receiver_name

    Body

    String

    The full name of the beneficiary.

    receiver_bank

    Body

    String

    The name of the beneficiary's bank.

    receiver_routing_number

    Body

    String

    The routing number of the beneficiary's bank.

    receiver_account_number

    Body

    String

    The account number of the beneficiary.

    isUS

    Body

    Boolean

    Indicates whether the ACH is domestic (true) or international (false).

    notes

    Body

    String

    The payment notes or remittance information for the ACH.


    Optional Parameters

    Parameter

    Location

    Type

    Description

    receiver_address

    Body

    Object

    The address of the beneficiary (see format below).

    effective_date

    Body

    Date

    The effective date for the ACH transfer.

    intermediary_bank

    Body

    String

    The name of the intermediary bank (Required if isUS = false).

    intermediary_bank_account_number

    Body

    String

    The account number at the intermediary bank (Required if isUS = false).

    intermediary_bank_bic_swift

    Body

    String

    The SWIFT/BIC of the intermediary bank (Required if isUS = false and no routing number is provided).

    intermediary_bank_routing_number

    Body

    String

    The routing number of the intermediary bank (Required if isUS = false and no SWIFT/BIC is provided).

    intermediary_bank_address

    Body

    Object

    The address of the intermediary bank (see format below).

    Receiver Address Object Format (Optional)

    {

    "addressLine1": "123 Beneficiary St",

    "addressLine2": "Suite 500",

    "cityLocale": "Los Angeles",

    "stateRegion": "CA",

    "postalCode": "90001",

    "country": "USA"

    }

    Intermediary Bank Address Object Format (Required if isUS = false****)

    {

    "addressLine1": "456 Bank Ave",

    "addressLine2": "Floor 12",

    "cityLocale": "London",

    "stateRegion": "",

    "postalCode": "SW1A 1AA",

    "country": "GBR"

    }

    Allowed Values for standard_entry_class (SEC Code)

    SEC Code

    Description

    CCD

    Corporate Credit or Debit - Used for business-to-business transactions.

    PPD

    Prearranged Payment and Deposit - Used for consumer transactions (e.g., payroll direct deposits).

    WEB

    Internet-Initiated Entry - Used for consumer transactions initiated online.

    TEL

    Telephone-Initiated Entry - Used for transactions authorized over the phone.

    CTX

    Corporate Trade Exchange - Used for B2B transactions with detailed remittance.

    ARC

    Accounts Receivable Entry - Used for converting mailed checks to ACH transactions.

    BOC

    Back Office Conversion - Used for converting in-person checks into ACH.

    POP

    Point of Purchase Entry - Used when a consumer authorizes an ACH transaction at the point of sale.

    RCK

    Re-Presented Check Entry - Used for representing a bounced check due to insufficient funds.


    Validation Rules

  • amount must be a valid number and greater than zero.
  • account_id must exist and have sufficient balance for the withdrawal.
  • ach_reference must be unique.
  • ach_type is required but not validated against predefined values.
  • standard_entry_class must be a valid NACHA SEC Code (see allowed values).
  • If isUS = false, intermediary bank details (intermediary_bank, intermediary_bank_account_number, intermediary_bank_address) must be provided.
  • receiver_address.country, intermediary_bank_address.country (if applicable) must be in ISO 3166-1 alpha-3 format.

  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Amount must be a valid number greater than zero.

    400

    Missing Requirement(s)

    Required fields are missing in the request.

    400

    Insufficient Funds

    Account balance is too low for this withdrawal.

    400

    Invalid SEC Code

    The provided standard_entry_class is not a valid NACHA SEC Code.

    404

    Not Found

    The account does not exist.

    500

    Unexpected Error

    A server error occurred while processing the request.


    Notes

  • The ACH Type (ach_type) is required but not validated against predefined values.
  • The standard_entry_class (SEC Code) is validated against official NACHA SEC Codes.
  • International ACH Transfers (isUS = false) require intermediary bank details.
  • Example Request

    curl

    curl --location -g '{{baseURL}}/funding/withdraw/ach' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{ "customer_id": "CID250103014042-RAFVZE-98TWFD", "account_id": 2, "amount": 21.13, "currency": "USD", "ach_reference": "ACHrefwer", "receiver_name": "Tom Server", "receiver_bank": "Captial One", "receiver_address": { "addressLine1": "Beenie Bank Plaza Squre", "addressLine2": "Suite 5", "cityLocale": "Delwone", "stateRegion": "Delaware", "postalCode": "48948", "country": "USA" }, "receiver_account_number": "789488887", "receiver_routing_number": "01221232", "ach_type": "Signature ACH", "standard_entry_class": "WEB", "isUS": true }'
    JSON body
    {
      "customer_id": "CID250103014042-RAFVZE-98TWFD",
      "account_id": 2,
      "amount": 21.13,
      "currency": "USD",
      "ach_reference": "ACHrefwer",
      "receiver_name": "Tom Server",
      "receiver_bank": "Captial One",
      "receiver_address": {
        "addressLine1": "Beenie Bank Plaza Squre",
        "addressLine2": "Suite 5",
        "cityLocale": "Delwone",
        "stateRegion": "Delaware",
        "postalCode": "48948",
        "country": "USA"
      },
      "receiver_account_number": "789488887",
      "receiver_routing_number": "01221232",
      "ach_type": "Signature ACH",
      "standard_entry_class": "WEB",
      "isUS": true
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "transaction": {
          "transaction_id": 20,
          "direction": "O",
          "type": "ACH",
          "account_no": "2175544749318837",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "status": "PND",
          "amount": 21.13,
          "currency": "USD",
          "balance_available": 0,
          "description": "ACH Withdrawal - ACHrefwer",
          "line2": null,
          "trnCode": "6011",
          "isCredit": false,
          "isFee": false,
          "settledAt": null,
          "isReversal": false,
          "reversed_tx_id": null,
          "ach": {
            "id": 12,
            "ach_reference": "ACHrefwer",
            "ach_type": "Signature ",
            "standard_entry_class": "WEB",
            "status": "PND",
            "direction": "O",
            "sender_id": null,
            "sender_name": "John Doe",
            "sender_bank": "Medici Bank International",
            "sender_routing_number": "10000001",
            "sender_account_number": "2175544749318837",
            "sender_address": null,
            "receiver_id": null,
            "receiver_name": "Tom Server",
            "receiver_bank": "Captial One",
            "receiver_routing_number": "01221232",
            "receiver_account_number": "789488887",
            "receiver_address": 2,
            "intermediary_bank": null,
            "intermediary_bank_account_number": null,
            "intermediary_bank_bic_swift": null,
            "intermediary_bank_routing_number": null,
            "intermediary_bank_address": null,
            "notes": null,
            "effective_date": null,
            "isUS": true,
            "createdAt": "2025-01-10T14:30:09.000Z",
            "updatedAt": "2025-01-10T19:32:03.000Z"
          },
          "isDeleted": false,
          "createdAt": "2025-01-10T14:30:09.000Z",
          "updatedAt": "2025-01-10T19:32:03.000Z"
        }
      },
      "url": "/funding/withdraw/ach",
      "status": 201,
      "timestamp": "2025-01-10T19:32:03Z"
    }

    GET List Wires

    {{baseURL}}/funding/wires

    List Wires

    Retrieves a list of wire transactions with optional filtering parameters.

    Endpoint

    GET /funding/wires

    Description

    This API fetches a list of wire transactions based on optional filters such as status, customer, account, or date range. Only active transactions are returned, and soft-deleted (isDeleted: true) transactions are excluded.


    Optional Parameters

    Parameter

    Location

    Type

    Description

    status

    Query

    String

    Filter wires by status (PND, CMP, HLD, etc.).

    customer_id

    Query

    String

    Retrieve wires for a specific customer.

    account_id

    Query

    Integer

    Retrieve wires for a specific account.

    date_from

    Query

    String

    Filter wires created on or after this date (YYYY-MM-DD).

    date_to

    Query

    String

    Filter wires created on or before this date (YYYY-MM-DD).


    Allowed Values for status

    Status

    Description

    PND

    Pending

    CMP

    Completed

    HLD

    On Hold

    CXL

    Canceled


    Validation Rules

  • date_from and date_to must be in YYYY-MM-DD format.
  • If both date_from and date_to are provided, date_from must be before or equal to date_to.
  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Invalid parameters such as date format issues.

    404

    Not Found

    No wire transactions found for the provided filters.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/wires'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": [
        {
          "id": 17,
          "status": "PND",
          "direction": "I",
          "amount": 1565.55,
          "one_block": "1:",
          "two_block": "2:",
          "three_block": null,
          "four_block_20": "wwoeiiowier",
          "four_block_23": ":23:CRED",
          "four_block_26": null,
          "four_block_32": "250112USD1565,55",
          "four_block_33": "USD1565,55",
          "four_block_36": null,
          "four_block_50": "5548948987\nFrank Thomas\n123 Thomas Square Suite 5\nDelwone Delaware 48948\nUSA",
          "four_block_52": "021222232\nChase Manahttan Bank\n934 Xenith Avae Suite 5\nNew York City NY 11111\nUSA",
          "four_block_53": null,
          "four_block_54": null,
          "four_block_56": "97987898\nCommerce Bank\nInter Me Ban Suite 5\nDelwone Delaware 48948\nUSA",
          "four_block_57": "4500032415\nMedici Bank International\n1250 Ponce de Leon Avenue\nSan Juan, PR 00907\nPRI",
          "four_block_59": "2175544749318837\nJohn Doe\n10 Downing Street\nLondon ENG SW1A 2AA\nGBR",
          "four_block_70": null,
          "four_block_71A": ":71A:OUR",
          "four_block_71F": null,
          "four_block_71G": null,
          "four_block_72": null,
          "four_block_77B": null,
          "notes": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:25:44.000Z",
          "updatedAt": "2025-01-12T20:27:15.000Z",
          "transaction_id": 45,
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD"
        }
      ],
      "url": "/funding/wires",
      "status": 200,
      "timestamp": "2025-01-12T20:32:02Z"
    }

    GET Wire Details

    {{baseURL}}/funding/wires/17

    Get Wire Details

    Retrieves detailed information about a specific wire transaction.

    Endpoint

    GET /funding/wires/:wire_id

    Description

    This API fetches detailed wire transaction data, including populated account, customer, and transaction details.


    Required Parameters

    Parameter

    Location

    Type

    Description

    wire_id

    Path

    Integer

    Unique identifier of the wire transaction.

    Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Invalid wire_id format.

    404

    Not Found

    No wire transaction found for the provided wire_id.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/wires/17'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "id": 17,
        "status": "PND",
        "direction": "I",
        "amount": 1565.55,
        "one_block": "1:",
        "two_block": "2:",
        "three_block": null,
        "four_block_20": "wwoeiiowier",
        "four_block_23": ":23:CRED",
        "four_block_26": null,
        "four_block_32": "250112USD1565,55",
        "four_block_33": "USD1565,55",
        "four_block_36": null,
        "four_block_50": "5548948987\nFrank Thomas\n123 Thomas Square Suite 5\nDelwone Delaware 48948\nUSA",
        "four_block_52": "021222232\nChase Manahttan Bank\n934 Xenith Avae Suite 5\nNew York City NY 11111\nUSA",
        "four_block_53": null,
        "four_block_54": null,
        "four_block_56": "97987898\nCommerce Bank\nInter Me Ban Suite 5\nDelwone Delaware 48948\nUSA",
        "four_block_57": "4500032415\nMedici Bank International\n1250 Ponce de Leon Avenue\nSan Juan, PR 00907\nPRI",
        "four_block_59": "2175544749318837\nJohn Doe\n10 Downing Street\nLondon ENG SW1A 2AA\nGBR",
        "four_block_70": null,
        "four_block_71A": ":71A:OUR",
        "four_block_71F": null,
        "four_block_71G": null,
        "four_block_72": null,
        "four_block_77B": null,
        "notes": null,
        "isUS": true,
        "isDeleted": false,
        "createdAt": "2025-01-12T15:25:44.000Z",
        "updatedAt": "2025-01-12T20:27:15.000Z",
        "transaction_id": {
          "transaction_id": 45,
          "account_no": "2175544749318837",
          "direction": "I",
          "type": "WYR",
          "status": "PND",
          "amount": 1565.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Wire Deposit - wwoeiiowier",
          "line2": null,
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:25:44.000Z",
          "updatedAt": "2025-01-12T20:27:14.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "5448",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": 17,
          "ach_id": null
        },
        "account_id": {
          "account_id": 2,
          "account_no": "2175544749318837",
          "account_type": "BDDA",
          "category": "B",
          "status": "ACT",
          "description": "BDDA",
          "nickname": null,
          "balance": 4588.35,
          "balance_available": 4588.35,
          "isDeleted": false,
          "openedAt": null,
          "closedAt": null,
          "closedReason": null,
          "createdAt": "2025-01-04T14:22:54.000Z",
          "updatedAt": "2025-01-12T20:13:11.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD"
        },
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": {
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "status": "ACT",
          "firstName": "John",
          "middleName": null,
          "lastName": "Doe",
          "maidenName": null,
          "suffix": null,
          "nickname": null,
          "email": "john.doe@example.com",
          "DOB": "1990-05-22T00:00:00.000Z",
          "birthplace": null,
          "nationality": null,
          "occupation": null,
          "taxPayer_id": "400-20-1112",
          "taxPayer_id_type": "SSN",
          "primaryCitizenship": "GBR",
          "secondaryCitizenship": null,
          "isPEP": true,
          "isUS": false,
          "isSeniorPolFig": false,
          "isFamilySeniorPolFig": false,
          "isDeleted": false,
          "createdAt": "2025-01-02T20:36:58.000Z",
          "updatedAt": "2025-01-11T21:49:17.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "mobile": 12,
          "homePhone": null,
          "workPhone": null,
          "residential_address": 7,
          "mailing_address": 8
        },
        "currency": "USD"
      },
      "url": "/funding/wires/17",
      "status": 200,
      "timestamp": "2025-01-12T20:32:50Z"
    }

    GET List ACHs

    {{baseURL}}/funding/achs

    List ACHs

    Retrieves a list of ACH transactions with optional filtering parameters.

    Endpoint

    GET /funding/achs

    Description

    This API fetches a list of ACH transactions based on optional filters such as status, customer, account, or date range. Only active transactions are returned, and soft-deleted (isDeleted: true) transactions are excluded.


    Optional Parameters

    Parameter

    Location

    Type

    Description

    status

    Query

    String

    Filter ACH transactions by status (PND, CMP, HLD, etc.).

    customer_id

    Query

    String

    Retrieve ACH transactions for a specific customer.

    account_id

    Query

    Integer

    Retrieve ACH transactions for a specific account.

    date_from

    Query

    String

    Filter ACHs created on or after this date (YYYY-MM-DD).

    date_to

    Query

    String

    Filter ACHs created on or before this date (YYYY-MM-DD).


    Allowed Values for status

    Status

    Description

    PND

    Pending

    CMP

    Completed

    HLD

    On Hold

    CXL

    Canceled


    Validation Rules

  • date_from and date_to must be in YYYY-MM-DD format.
  • If both date_from and date_to are provided, date_from must be before or equal to date_to.
  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Invalid parameters such as date format issues.

    404

    Not Found

    No ACH transactions found for the provided filters.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/achs'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": [
        {
          "id": 11,
          "status": "PND",
          "direction": "I",
          "amount": 100.55,
          "ach_type": "For Deposi",
          "ach_reference": "woweieruio",
          "standard_entry_class": "CCD",
          "sender_id": null,
          "sender_name": "Tom Server",
          "sender_bank": "Captial One",
          "sender_routing_number": "01221232",
          "sender_account_number": "1564848898",
          "receiver_name": "John Doe",
          "receiver_id": null,
          "receiver_bank": "Medici Bank International",
          "receiver_routing_number": "10000001",
          "receiver_account_number": "2175544749318837",
          "intermediary_bank": null,
          "intermediary_bank_account_number": null,
          "intermediary_bank_bic_swift": null,
          "intermediary_bank_routing_number": null,
          "effective_date": "2024-12-04T00:00:00.000Z",
          "settledAt": null,
          "notes": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-10T13:30:48.000Z",
          "updatedAt": "2025-01-10T18:30:49.000Z",
          "transaction_id": 19,
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "sender_address": null,
          "receiver_address": null,
          "intermediary_bank_address": null
        },
        {
          "id": 12,
          "status": "PND",
          "direction": "O",
          "amount": 21.13,
          "ach_type": "Signature ",
          "ach_reference": "ACHrefwer",
          "standard_entry_class": "WEB",
          "sender_id": null,
          "sender_name": "John Doe",
          "sender_bank": "Medici Bank International",
          "sender_routing_number": "10000001",
          "sender_account_number": "2175544749318837",
          "receiver_name": "Tom Server",
          "receiver_id": null,
          "receiver_bank": "Captial One",
          "receiver_routing_number": "01221232",
          "receiver_account_number": "789488887",
          "intermediary_bank": null,
          "intermediary_bank_account_number": null,
          "intermediary_bank_bic_swift": null,
          "intermediary_bank_routing_number": null,
          "effective_date": null,
          "settledAt": null,
          "notes": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-10T14:30:09.000Z",
          "updatedAt": "2025-01-10T19:32:03.000Z",
          "transaction_id": 20,
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "sender_address": null,
          "receiver_address": 2,
          "intermediary_bank_address": null
        }
      ],
      "url": "/funding/achs",
      "status": 200,
      "timestamp": "2025-01-12T20:33:36Z"
    }

    GET ACH Details

    {{baseURL}}/funding/achs/12

    Get ACH Details

    Retrieves detailed information about a specific ACH transaction.

    Endpoint

    GET /funding/achs/:ach_id

    Description

    This API fetches detailed ACH transaction data, including populated account, customer, and transaction details.


    Required Parameters

    Parameter

    Location

    Type

    Description

    ach_id

    Path

    Integer

    Unique identifier of the ACH transaction.

    Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Invalid ach_id format.

    404

    Not Found

    No ACH transaction found for the provided ach_id.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/achs/12'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "id": 12,
        "status": "PND",
        "direction": "O",
        "amount": 21.13,
        "ach_type": "Signature ",
        "ach_reference": "ACHrefwer",
        "standard_entry_class": "WEB",
        "sender_id": null,
        "sender_name": "John Doe",
        "sender_bank": "Medici Bank International",
        "sender_routing_number": "10000001",
        "sender_account_number": "2175544749318837",
        "receiver_name": "Tom Server",
        "receiver_id": null,
        "receiver_bank": "Captial One",
        "receiver_routing_number": "01221232",
        "receiver_account_number": "789488887",
        "intermediary_bank": null,
        "intermediary_bank_account_number": null,
        "intermediary_bank_bic_swift": null,
        "intermediary_bank_routing_number": null,
        "effective_date": null,
        "settledAt": null,
        "notes": null,
        "isUS": true,
        "isDeleted": false,
        "createdAt": "2025-01-10T14:30:09.000Z",
        "updatedAt": "2025-01-10T19:32:03.000Z",
        "transaction_id": {
          "transaction_id": 20,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "ACH",
          "status": "PND",
          "amount": 21.13,
          "currency": "USD",
          "balance_available": 0,
          "description": "ACH Withdrawal - ACHrefwer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-10T14:30:09.000Z",
          "updatedAt": "2025-01-10T19:32:03.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6011",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": 12
        },
        "account_id": {
          "account_id": 2,
          "account_no": "2175544749318837",
          "account_type": "BDDA",
          "category": "B",
          "status": "ACT",
          "description": "BDDA",
          "nickname": null,
          "balance": 4588.35,
          "balance_available": 4588.35,
          "isDeleted": false,
          "openedAt": null,
          "closedAt": null,
          "closedReason": null,
          "createdAt": "2025-01-04T14:22:54.000Z",
          "updatedAt": "2025-01-12T20:13:11.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD"
        },
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": {
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "status": "ACT",
          "firstName": "John",
          "middleName": null,
          "lastName": "Doe",
          "maidenName": null,
          "suffix": null,
          "nickname": null,
          "email": "john.doe@example.com",
          "DOB": "1990-05-22T00:00:00.000Z",
          "birthplace": null,
          "nationality": null,
          "occupation": null,
          "taxPayer_id": "400-20-1112",
          "taxPayer_id_type": "SSN",
          "primaryCitizenship": "GBR",
          "secondaryCitizenship": null,
          "isPEP": true,
          "isUS": false,
          "isSeniorPolFig": false,
          "isFamilySeniorPolFig": false,
          "isDeleted": false,
          "createdAt": "2025-01-02T20:36:58.000Z",
          "updatedAt": "2025-01-11T21:49:17.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "mobile": 12,
          "homePhone": null,
          "workPhone": null,
          "residential_address": 7,
          "mailing_address": 8
        },
        "currency": "USD",
        "sender_address": null,
        "receiver_address": 2,
        "intermediary_bank_address": null
      },
      "url": "/funding/achs/12",
      "status": 200,
      "timestamp": "2025-01-12T20:34:36Z"
    }

    Transfers

    POST Transfer Funds

    {{baseURL}}/funding/transfer

    Transfer Funds

    The Transfer Funds API allows clients to move funds between accounts. Transfers are instant and categorized as either Internal Transfers (INT) or Network Transfers (NET). This function ensures sufficient balance checks and proper transaction logging.

    Endpoint

    POST /funding/transfer

    Description

    This API facilitates fund transfers between two accounts. The transfer type is determined automatically:

  • Internal Transfer (INT): When the sender and receiver belong to the same customer.
  • Network Transfer (NET): When the transfer is between two different customers.
  • The system ensures:

  • Sufficient balance checks on the sender’s account.
  • Account and customer status validation to ensure both sender and receiver are active (status = 'ACT').
  • Instant processing, meaning transactions are immediately reflected in the system.

  • Required Parameters

    Parameter

    Location

    Type

    Description

    sender_account_id

    Body

    Integer

    The ID of the account from which funds will be debited.

    receiver_account_id

    Body

    Integer

    The ID of the account receiving the funds.

    amount

    Body

    Decimal

    The amount to be transferred. Must be greater than zero.

    currency

    Body

    String

    The currency of the transfer (e.g., "USD").

    client_id

    Body

    String

    The ID of the client initiating the transfer.

    status

    Body

    String

    The status of the transfer (PND, CMP, etc.).

    Determining Transfer Type (transfer_type)

  • If sender and receiver accounts belong to the same customer, the transfer type is Internal Transfer (INT).
  • If sender and receiver accounts belong to different customers, the transfer type is Network Transfer (NET).
  • The system automatically derives sender_customer_id and receiver_customer_id from the Accounts model.


    Transaction Codes and Descriptions

    Transfer Type

    Debit Transaction Code

    Credit Transaction Code

    Description

    Internal Transfer (INT)

    6001

    6000

    Move funds between a customer's own accounts.

    Network Transfer (NET)

    6003

    6002

    Transfer funds from one customer to another.

    Validation Rules

  • amount must be a valid number greater than zero.
  • sender_account_id and receiver_account_id must be different unless it’s an Internal Transfer (INT).
  • The sender account must have sufficient funds to cover the transfer.
  • The sender and receiver accounts must be active (status = 'ACT').
  • The sender and receiver customers must also be active (status = 'ACT').
  • The currency must match both accounts' currency.

  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    The request contains invalid or missing parameters.

    400

    Insufficient Funds

    The sender’s account does not have enough balance for the transfer.

    400

    Account Not Active

    The sender or receiver account is not in ACT status.

    400

    Customer Not Active

    The sender or receiver customer is not in ACT status.

    404

    Not Found

    Either the sender or receiver account does not exist.

    500

    Unexpected Error

    A server error occurred while processing the transfer.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/transfer' \
      --request POST \
      --header 'Content-Type: application/json' \
      --data '{ "customer_id": "CID250103014042-RAFVZE-98TWFD", "account_id": 2, "amount": 45, "currency": "USD", "sender_account_id": 2, "receiver_account_id": 4 }'
    JSON body
    {
      "customer_id": "CID250103014042-RAFVZE-98TWFD",
      "account_id": 2,
      "amount": 45,
      "currency": "USD",
      "sender_account_id": 2,
      "receiver_account_id": 4
    }

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "transfer_id": "TRID250112201310-HVCT2YMPDL-A2FLMJUCBN",
        "transfer_type": "INT",
        "transferRecord": {
          "id": 10,
          "transfer_id": "TRID250112201310-HVCT2YMPDL-A2FLMJUCBN",
          "amount": 45,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:12:57.000Z",
          "updatedAt": "2025-01-12T20:13:13.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        "debitTransaction": {
          "transaction_id": 43,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 45,
          "currency": "USD",
          "balance_available": 4588.35,
          "description": "Outgoing Move Funds Transfer",
          "line2": "Outgoing Transfer To: 3115595309991372 From: 2175544749318837",
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:12:57.000Z",
          "updatedAt": "2025-01-12T20:13:13.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 10,
          "wire_id": null,
          "ach_id": null
        },
        "creditTransaction": {
          "transaction_id": 44,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 45,
          "currency": "USD",
          "balance_available": 511.65,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:12:57.000Z",
          "updatedAt": "2025-01-12T20:13:14.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 10,
          "wire_id": null,
          "ach_id": null
        }
      },
      "url": "/funding/transfer",
      "status": 201,
      "timestamp": "2025-01-12T20:13:14Z"
    }

    GET List Transfers

    {{baseURL}}/funding/transfers

    List Transfers

    Retrieves a list of transfer transactions with optional filtering parameters.

    Endpoint

    GET /funding/transfers

    Description

    This API fetches a list of transfers based on optional filters such as status, account, or date range. Only active transfers are returned, and soft-deleted (isDeleted: true) transfers are excluded.


    Optional Parameters

    Parameter

    Location

    Type

    Description

    status

    Query

    String

    Filter transfers by status (PND, CMP, HLD, etc.).

    from_account_id

    Query

    Integer

    Retrieve transfers from a specific sender account.

    to_account_id

    Query

    Integer

    Retrieve transfers to a specific receiver account.

    date_from

    Query

    String

    Filter transfers created on or after this date (YYYY-MM-DD).

    date_to

    Query

    String

    Filter transfers created on or before this date (YYYY-MM-DD).


    Allowed Values for status

    Status

    Description

    PND

    Pending

    CMP

    Completed

    HLD

    On Hold

    CXL

    Canceled


    Validation Rules

  • date_from and date_to must be in YYYY-MM-DD format.
  • If both date_from and date_to are provided, date_from must be before or equal to date_to.
  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Invalid parameters such as date format issues.

    404

    Not Found

    No transfers found for the provided filters.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/transfers'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": [
        {
          "id": 10,
          "transfer_id": "TRID250112201310-HVCT2YMPDL-A2FLMJUCBN",
          "amount": 45,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:12:57.000Z",
          "updatedAt": "2025-01-12T20:13:13.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 9,
          "transfer_id": "TRID250112201004-LF239UJ2DU-CG8ENDVLG4",
          "amount": 15,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:08:06.000Z",
          "updatedAt": "2025-01-12T20:10:07.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 8,
          "transfer_id": "TRID250112190907-75XE6VL2UY-VS2QTKHLYR",
          "amount": 5,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:55.000Z",
          "updatedAt": "2025-01-12T19:09:10.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 7,
          "transfer_id": "TRID250112190820-98LKH63TV2-UYYBR5J32A",
          "amount": 5,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:09.000Z",
          "updatedAt": "2025-01-12T19:08:23.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 6,
          "transfer_id": "TRID250112190302-XA3BADW5RA-VBKSLK295L",
          "amount": 5,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:02:52.000Z",
          "updatedAt": "2025-01-12T19:03:05.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 5,
          "transfer_id": "TRID250112185224-QW3MLB8CNR-FLF8WGYXM2",
          "amount": 5,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:47:43.000Z",
          "updatedAt": "2025-01-12T18:52:27.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 4,
          "transfer_id": "TRID250112183925-HYVTQ4KFWQ-KAC3N7L7VL",
          "amount": 110.55,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:38:59.000Z",
          "updatedAt": "2025-01-12T18:39:28.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 3,
          "transfer_id": "TRID250112183718-XWZ5NJAQ34-VYTBLBSKXG",
          "amount": 110.55,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:37:10.000Z",
          "updatedAt": "2025-01-12T18:37:21.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        },
        {
          "id": 2,
          "transfer_id": "TRID250112183538-JNJ9PUTPGD-YQ5ADCUEQK",
          "amount": 110.55,
          "transfer_type": "INT",
          "status": "CMP",
          "isReversed": false,
          "notes": null,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:35:25.000Z",
          "updatedAt": "2025-01-12T18:35:41.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "from_account_id": "2",
          "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "to_account_id": "4",
          "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD",
          "reversed_transfer_id": null
        }
      ],
      "url": "/funding/transfers",
      "status": 200,
      "timestamp": "2025-01-12T20:16:08Z"
    }

    GET Transfer Details

    {{baseURL}}/funding/transfers/10

    Get Transfer Details

    Retrieves detailed information about a specific transfer transaction.

    Endpoint

    GET /funding/transfers/:transfer_id

    Description

    This API fetches detailed transfer transaction data, including populated account, customer, and transaction details.


    Required Parameters

    Parameter

    Location

    Type

    Description

    transfer_id

    Path

    String

    Unique identifier of the transfer transaction.

    Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Invalid transfer_id format.

    404

    Not Found

    No transfer transaction found for the provided transfer_id.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/funding/transfers/10'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "id": 10,
        "transfer_id": "TRID250112201310-HVCT2YMPDL-A2FLMJUCBN",
        "amount": 45,
        "transfer_type": "INT",
        "status": "CMP",
        "isReversed": false,
        "notes": null,
        "isDeleted": false,
        "createdAt": "2025-01-12T15:12:57.000Z",
        "updatedAt": "2025-01-12T20:13:13.000Z",
        "client_id": "CLID2412310510476RFCR3",
        "from_account_id": null,
        "from_customer_id": "CID250103014042-RAFVZE-98TWFD",
        "to_account_id": null,
        "to_customer_id": "CID250103014042-RAFVZE-98TWFD",
        "currency": "USD",
        "reversed_transfer_id": null
      },
      "url": "/funding/transfers/10",
      "status": 200,
      "timestamp": "2025-01-12T20:21:17Z"
    }

    Transactions

    GET List Transactions

    {{baseURL}}/transactions

    List Transactions

    The List Transactions API allows clients to retrieve a list of transactions based on optional filters such as account, customer, transaction code, or date range.


    Endpoint

    GET /transactions


    Description

    This API returns a paginated list of transactions. Clients can filter results based on the provided query parameters.


    Optional Query Parameters

    Parameter

    Location

    Type

    Description

    account_id

    Query

    Integer

    Filter transactions by a specific account.

    customer_id

    Query

    String

    Filter transactions by a specific customer.

    trnCode

    Query

    String

    Filter transactions by transaction code.

    status

    Query

    String

    Filter transactions by status (e.g., PND, CMP, HLD).

    date_from

    Query

    String

    Retrieve transactions created on or after this date (YYYY-MM-DD).

    date_to

    Query

    String

    Retrieve transactions created on or before this date (YYYY-MM-DD).


    Allowed Values for status

    Status

    Description

    PND

    Pending

    CMP

    Completed

    HLD

    On Hold

    CXL

    Canceled


    Validation Rules

  • date_from and date_to must be in YYYY-MM-DD format.
  • If both date_from and date_to are provided, date_from must be before or equal to date_to.
  • Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    One or more query parameters are invalid.

    404

    Not Found

    No transactions found matching the given criteria.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/transactions'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": [
        {
          "transaction_id": 19,
          "account_no": "2175544749318837",
          "direction": "I",
          "type": "ACH",
          "status": "PND",
          "amount": 100.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "ACH Deposit - woweieruio",
          "line2": null,
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-10T13:29:33.000Z",
          "updatedAt": "2025-01-10T18:30:48.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6010",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": 11
        },
        {
          "transaction_id": 20,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "ACH",
          "status": "PND",
          "amount": 21.13,
          "currency": "USD",
          "balance_available": 0,
          "description": "ACH Withdrawal - ACHrefwer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-10T14:30:09.000Z",
          "updatedAt": "2025-01-10T19:32:03.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6011",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": 12
        },
        {
          "transaction_id": 27,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:35:25.000Z",
          "updatedAt": "2025-01-12T18:35:40.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 28,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:35:25.000Z",
          "updatedAt": "2025-01-12T18:35:41.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 29,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:37:10.000Z",
          "updatedAt": "2025-01-12T18:37:19.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 30,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:37:10.000Z",
          "updatedAt": "2025-01-12T18:37:20.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 31,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:38:59.000Z",
          "updatedAt": "2025-01-12T18:39:28.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 4,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 32,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:38:59.000Z",
          "updatedAt": "2025-01-12T18:39:29.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 4,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 33,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:47:43.000Z",
          "updatedAt": "2025-01-12T18:52:27.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 5,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 34,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:47:43.000Z",
          "updatedAt": "2025-01-12T18:52:28.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 5,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 35,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:02:52.000Z",
          "updatedAt": "2025-01-12T19:03:05.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 6,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 36,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:02:52.000Z",
          "updatedAt": "2025-01-12T19:03:06.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 6,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 37,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:09.000Z",
          "updatedAt": "2025-01-12T19:08:23.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 7,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 38,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:09.000Z",
          "updatedAt": "2025-01-12T19:08:24.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 7,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 39,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:55.000Z",
          "updatedAt": "2025-01-12T19:09:11.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 8,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 40,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:55.000Z",
          "updatedAt": "2025-01-12T19:09:11.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 8,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 41,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 15,
          "currency": "USD",
          "balance_available": 4633.35,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:08:06.000Z",
          "updatedAt": "2025-01-12T20:10:07.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 9,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 42,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 15,
          "currency": "USD",
          "balance_available": 466.65,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:08:06.000Z",
          "updatedAt": "2025-01-12T20:10:07.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 9,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 43,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 45,
          "currency": "USD",
          "balance_available": 4588.35,
          "description": "Outgoing Move Funds Transfer",
          "line2": "Outgoing Transfer To: 3115595309991372 From: 2175544749318837",
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:12:57.000Z",
          "updatedAt": "2025-01-12T20:13:13.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 10,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 44,
          "account_no": "3115595309991372",
          "direction": "I",
          "type": "INT",
          "status": "CMP",
          "amount": 45,
          "currency": "USD",
          "balance_available": 511.65,
          "description": "Incoming Move Funds Transfer",
          "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:12:57.000Z",
          "updatedAt": "2025-01-12T20:13:14.000Z",
          "account_id": 4,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6000",
          "reversed_tx_id": null,
          "transfer_id": 10,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 45,
          "account_no": "2175544749318837",
          "direction": "I",
          "type": "WYR",
          "status": "PND",
          "amount": 1565.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Wire Deposit - wwoeiiowier",
          "line2": null,
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:25:44.000Z",
          "updatedAt": "2025-01-12T20:27:14.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "5448",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": 17,
          "ach_id": null
        }
      ],
      "url": "/transactions",
      "status": 200,
      "timestamp": "2025-01-13T02:50:48Z"
    }

    GET Transaction Details

    {{baseURL}}/transactions/44

    Get Transaction Details

    The Get Transaction Details API allows clients to retrieve detailed information about a specific transaction.


    Endpoint

    GET /transactions/:id


    Description

    This API returns detailed information about a specific transaction, including transaction type, customer, and account details.


    Required Parameter

    Parameter

    Location

    Type

    Description

    id

    Path

    Integer

    The unique identifier of the transaction.

    Error Handling

    Error Code

    Reason

    Description

    400

    Validation Error

    Invalid transaction ID format.

    404

    Not Found

    No transaction found for the provided transaction ID.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/transactions/44'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "transaction_id": 44,
        "account_no": "3115595309991372",
        "direction": "I",
        "type": "INT",
        "status": "CMP",
        "amount": 45,
        "currency": "USD",
        "balance_available": 511.65,
        "description": "Incoming Move Funds Transfer",
        "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
        "isCredit": true,
        "isFee": false,
        "isReversal": false,
        "settledAt": null,
        "isUS": true,
        "isDeleted": false,
        "createdAt": "2025-01-12T15:12:57.000Z",
        "updatedAt": "2025-01-12T20:13:14.000Z",
        "account_id": {
          "account_id": 4,
          "account_no": "3115595309991372",
          "account_type": "CSAV",
          "category": "C",
          "status": "ACT",
          "description": "CSAV",
          "nickname": null,
          "balance": 511.65,
          "balance_available": 511.65,
          "isDeleted": false,
          "openedAt": null,
          "closedAt": null,
          "closedReason": null,
          "createdAt": "2025-01-11T16:23:14.000Z",
          "updatedAt": "2025-01-12T20:13:12.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "currency": "USD"
        },
        "client_id": "CLID2412310510476RFCR3",
        "customer_id": {
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "status": "ACT",
          "firstName": "John",
          "middleName": null,
          "lastName": "Doe",
          "maidenName": null,
          "suffix": null,
          "nickname": null,
          "email": "john.doe@example.com",
          "DOB": "1990-05-22T00:00:00.000Z",
          "birthplace": null,
          "nationality": null,
          "occupation": null,
          "taxPayer_id": "400-20-1112",
          "taxPayer_id_type": "SSN",
          "primaryCitizenship": "GBR",
          "secondaryCitizenship": null,
          "isPEP": true,
          "isUS": false,
          "isSeniorPolFig": false,
          "isFamilySeniorPolFig": false,
          "isDeleted": false,
          "createdAt": "2025-01-02T20:36:58.000Z",
          "updatedAt": "2025-01-11T21:49:17.000Z",
          "client_id": "CLID2412310510476RFCR3",
          "mobile": 12,
          "homePhone": null,
          "workPhone": null,
          "residential_address": 7,
          "mailing_address": 8
        },
        "trnCode": "6000",
        "reversed_tx_id": null,
        "transfer_id": 10,
        "wire_id": null,
        "ach_id": null
      },
      "url": "/transactions/44",
      "status": 200,
      "timestamp": "2025-01-13T02:52:51Z"
    }

    GET Account Transactions

    {{baseURL}}/transactions/account/2

    Get Account Transactions

    The Get Account Transactions API retrieves all transactions for a specific account belonging to the authenticated client.


    Endpoint

    GET /transactions/account/:account_id


    Description

    This API allows clients to retrieve all transactions associated with a specific account. Transactions are returned in ascending order based on their creation date.


    Required Parameters

    Parameter

    Location

    Type

    Description

    account_id

    Path

    Integer

    The ID of the account whose transactions are requested.


    Validation Rules

  • account_id must be provided in the path.
  • The account_id must belong to the authenticated client (client_id).
  • The account must not be deleted (isDeleted: false).
  • If no transactions exist for the given account_id, a 404 Not Found response is returned.

  • Error Handling

    Error Code

    Reason

    Description

    400

    Missing Requirement(s)

    The account_id parameter is required.

    404

    Not Found

    No transactions found for the specified account.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/transactions/account/2'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": [
        {
          "transaction_id": 19,
          "account_no": "2175544749318837",
          "direction": "I",
          "type": "ACH",
          "status": "PND",
          "amount": 100.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "ACH Deposit - woweieruio",
          "line2": null,
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-10T13:29:33.000Z",
          "updatedAt": "2025-01-10T18:30:48.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6010",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": 11
        },
        {
          "transaction_id": 20,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "ACH",
          "status": "PND",
          "amount": 21.13,
          "currency": "USD",
          "balance_available": 0,
          "description": "ACH Withdrawal - ACHrefwer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-10T14:30:09.000Z",
          "updatedAt": "2025-01-10T19:32:03.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6011",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": 12
        },
        {
          "transaction_id": 27,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:35:25.000Z",
          "updatedAt": "2025-01-12T18:35:40.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 29,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:37:10.000Z",
          "updatedAt": "2025-01-12T18:37:19.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 31,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 110.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:38:59.000Z",
          "updatedAt": "2025-01-12T18:39:28.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 4,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 33,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "PND",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T13:47:43.000Z",
          "updatedAt": "2025-01-12T18:52:27.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 5,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 35,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:02:52.000Z",
          "updatedAt": "2025-01-12T19:03:05.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 6,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 37,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:09.000Z",
          "updatedAt": "2025-01-12T19:08:23.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 7,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 39,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 5,
          "currency": "USD",
          "balance_available": 0,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T14:08:55.000Z",
          "updatedAt": "2025-01-12T19:09:11.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 8,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 41,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 15,
          "currency": "USD",
          "balance_available": 4633.35,
          "description": "Outgoing Move Funds Transfer",
          "line2": null,
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:08:06.000Z",
          "updatedAt": "2025-01-12T20:10:07.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 9,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 43,
          "account_no": "2175544749318837",
          "direction": "O",
          "type": "INT",
          "status": "CMP",
          "amount": 45,
          "currency": "USD",
          "balance_available": 4588.35,
          "description": "Outgoing Move Funds Transfer",
          "line2": "Outgoing Transfer To: 3115595309991372 From: 2175544749318837",
          "isCredit": false,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:12:57.000Z",
          "updatedAt": "2025-01-12T20:13:13.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "6001",
          "reversed_tx_id": null,
          "transfer_id": 10,
          "wire_id": null,
          "ach_id": null
        },
        {
          "transaction_id": 45,
          "account_no": "2175544749318837",
          "direction": "I",
          "type": "WYR",
          "status": "PND",
          "amount": 1565.55,
          "currency": "USD",
          "balance_available": 0,
          "description": "Wire Deposit - wwoeiiowier",
          "line2": null,
          "isCredit": true,
          "isFee": false,
          "isReversal": false,
          "settledAt": null,
          "isUS": true,
          "isDeleted": false,
          "createdAt": "2025-01-12T15:25:44.000Z",
          "updatedAt": "2025-01-12T20:27:14.000Z",
          "account_id": 2,
          "client_id": "CLID2412310510476RFCR3",
          "customer_id": "CID250103014042-RAFVZE-98TWFD",
          "trnCode": "5448",
          "reversed_tx_id": null,
          "transfer_id": null,
          "wire_id": 17,
          "ach_id": null
        }
      ],
      "url": "/transactions/account/2",
      "status": 200,
      "timestamp": "2025-01-13T15:54:39Z"
    }

    GET Customer Transactions

    {{baseURL}}/transactions/customer/CID250103014042-RAFVZE-98TWFD

    Get Customer Transactions

    The Get Customer Transactions API retrieves all transactions for a specific customer, grouping them by the customer’s accounts.


    Endpoint

    GET /transactions/customer/:customer_id


    Description

    This API allows clients to retrieve all transactions associated with a specific customer. Transactions are grouped by account and sorted in ascending order by account number. Each account entry includes its account number, description, balance, and available balance, followed by its corresponding transactions.


    Required Parameters

    Parameter

    Location

    Type

    Description

    customer_id

    Path

    String

    The ID of the customer whose transactions are requested.


    Validation Rules

  • customer_id must be provided in the path.
  • The customer_id must belong to the authenticated client (client_id).
  • The customer must not be deleted (isDeleted: false).
  • If no transactions exist for the given customer_id, a 404 Not Found response is returned.

  • Error Handling

    Error Code

    Reason

    Description

    400

    Missing Requirement(s)

    The customer_id parameter is required.

    404

    Not Found

    No transactions found for the specified customer.

    500

    Unexpected Error

    A server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/transactions/customer/CID250103014042-RAFVZE-98TWFD'

    Example Response

    200 OK

    Body

    {
      "success": true,
      "data": {
        "2": {
          "account_no": "2175544749318837",
          "description": "BDDA",
          "balance": 4588.35,
          "balance_available": 4588.35,
          "transactions": [
            {
              "transaction_id": 19,
              "account_no": "2175544749318837",
              "direction": "I",
              "type": "ACH",
              "status": "PND",
              "amount": 100.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "ACH Deposit - woweieruio",
              "line2": null,
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-10T13:29:33.000Z",
              "updatedAt": "2025-01-10T18:30:48.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6010",
              "reversed_tx_id": null,
              "transfer_id": null,
              "wire_id": null,
              "ach_id": 11
            },
            {
              "transaction_id": 20,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "ACH",
              "status": "PND",
              "amount": 21.13,
              "currency": "USD",
              "balance_available": 0,
              "description": "ACH Withdrawal - ACHrefwer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-10T14:30:09.000Z",
              "updatedAt": "2025-01-10T19:32:03.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6011",
              "reversed_tx_id": null,
              "transfer_id": null,
              "wire_id": null,
              "ach_id": 12
            },
            {
              "transaction_id": 27,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "PND",
              "amount": 110.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:35:25.000Z",
              "updatedAt": "2025-01-12T18:35:40.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": null,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 29,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "PND",
              "amount": 110.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:37:10.000Z",
              "updatedAt": "2025-01-12T18:37:19.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": null,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 31,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "PND",
              "amount": 110.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:38:59.000Z",
              "updatedAt": "2025-01-12T18:39:28.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": 4,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 33,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "PND",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:47:43.000Z",
              "updatedAt": "2025-01-12T18:52:27.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": 5,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 35,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "CMP",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T14:02:52.000Z",
              "updatedAt": "2025-01-12T19:03:05.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": 6,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 37,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "CMP",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T14:08:09.000Z",
              "updatedAt": "2025-01-12T19:08:23.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": 7,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 39,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "CMP",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T14:08:55.000Z",
              "updatedAt": "2025-01-12T19:09:11.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": 8,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 41,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "CMP",
              "amount": 15,
              "currency": "USD",
              "balance_available": 4633.35,
              "description": "Outgoing Move Funds Transfer",
              "line2": null,
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T15:08:06.000Z",
              "updatedAt": "2025-01-12T20:10:07.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": 9,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 43,
              "account_no": "2175544749318837",
              "direction": "O",
              "type": "INT",
              "status": "CMP",
              "amount": 45,
              "currency": "USD",
              "balance_available": 4588.35,
              "description": "Outgoing Move Funds Transfer",
              "line2": "Outgoing Transfer To: 3115595309991372 From: 2175544749318837",
              "isCredit": false,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T15:12:57.000Z",
              "updatedAt": "2025-01-12T20:13:13.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6001",
              "reversed_tx_id": null,
              "transfer_id": 10,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 45,
              "account_no": "2175544749318837",
              "direction": "I",
              "type": "WYR",
              "status": "PND",
              "amount": 1565.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "Wire Deposit - wwoeiiowier",
              "line2": null,
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T15:25:44.000Z",
              "updatedAt": "2025-01-12T20:27:14.000Z",
              "account_id": 2,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "5448",
              "reversed_tx_id": null,
              "transfer_id": null,
              "wire_id": 17,
              "ach_id": null
            }
          ]
        },
        "4": {
          "account_no": "3115595309991372",
          "description": "CSAV",
          "balance": 511.65,
          "balance_available": 511.65,
          "transactions": [
            {
              "transaction_id": 28,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 110.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:35:25.000Z",
              "updatedAt": "2025-01-12T18:35:41.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": null,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 30,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 110.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:37:10.000Z",
              "updatedAt": "2025-01-12T18:37:20.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": null,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 32,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 110.55,
              "currency": "USD",
              "balance_available": 0,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:38:59.000Z",
              "updatedAt": "2025-01-12T18:39:29.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": 4,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 34,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T13:47:43.000Z",
              "updatedAt": "2025-01-12T18:52:28.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": 5,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 36,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T14:02:52.000Z",
              "updatedAt": "2025-01-12T19:03:06.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": 6,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 38,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T14:08:09.000Z",
              "updatedAt": "2025-01-12T19:08:24.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": 7,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 40,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 5,
              "currency": "USD",
              "balance_available": 0,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T14:08:55.000Z",
              "updatedAt": "2025-01-12T19:09:11.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": 8,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 42,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 15,
              "currency": "USD",
              "balance_available": 466.65,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T15:08:06.000Z",
              "updatedAt": "2025-01-12T20:10:07.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": 9,
              "wire_id": null,
              "ach_id": null
            },
            {
              "transaction_id": 44,
              "account_no": "3115595309991372",
              "direction": "I",
              "type": "INT",
              "status": "CMP",
              "amount": 45,
              "currency": "USD",
              "balance_available": 511.65,
              "description": "Incoming Move Funds Transfer",
              "line2": "Incoming Transfer From: 2175544749318837 To: 3115595309991372",
              "isCredit": true,
              "isFee": false,
              "isReversal": false,
              "settledAt": null,
              "isUS": true,
              "isDeleted": false,
              "createdAt": "2025-01-12T15:12:57.000Z",
              "updatedAt": "2025-01-12T20:13:14.000Z",
              "account_id": 4,
              "client_id": "CLID2412310510476RFCR3",
              "customer_id": "CID250103014042-RAFVZE-98TWFD",
              "trnCode": "6000",
              "reversed_tx_id": null,
              "transfer_id": 10,
              "wire_id": null,
              "ach_id": null
            }
          ]
        }
      },
      "url": "/transactions/customer/CID250103014042-RAFVZE-98TWFD",
      "status": 200,
      "timestamp": "2025-01-13T16:19:55Z"
    }

    Statements

    GET Statements

    {{baseURL}}/statements

    Get Statements

    The Get Statements API provides a list of statements for an account, grouped by month. Each statement includes the transaction count for that month and a link to access detailed statement information.


    Endpoint

    GET /statements/:account_id


    Description

    This API returns a list of monthly statements for a specified account. Each statement contains summary information, including the month, year, transaction count, and a link to access detailed statement data for that period.


    Required Parameters

    Parameter

    Location

    Type

    Description

    account_id

    Path

    String

    The unique ID of the account to retrieve statements for.

    Validation Rules

  • The account_id must exist, be valid, and belong to the client making the API call.
  • Error Responses

    Status Code

    Reason

    Description

    400

    Missing Requirement(s)

    account_id is required in the request path.

    404

    Not Found

    The account does not exist or does not belong to the requesting client.

    500

    Unexpected Error

    An internal server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/statements'

    No example response in the published collection.

    GET Statement Details

    {{baseURL}}/statements

    Get Statement Details

    The Get Statement Details API provides detailed transaction information and summary statistics for a specific statement month.


    Endpoint

    GET /statements/:account_id/:statement_id


    Description

    This API returns detailed statement information for a specific account and month. The response includes account holder information, account details, transaction data, and summary statistics.


    Required Parameters

    Parameter

    Location

    Type

    Description

    account_id

    Path

    String

    The unique ID of the account to retrieve the statement for.

    statement_id

    Path

    String

    The ID of the statement to retrieve, formatted as YYYYMM.

    Error Responses

    Status Code

    Reason

    Description

    400

    Missing Requirement(s)

    account_id and/or statement_id are required.

    404

    Not Found

    The account or statement does not exist or does not belong to the client.

    500

    Unexpected Error

    An internal server error occurred while processing the request.

    Example Request

    curl

    curl --location -g '{{baseURL}}/statements'

    No example response in the published collection.