Getting Started

API Overview

The CrissCross API provides comprehensive tools for managing accounts, trading currencies, and making local currency payouts. The API is organized into three main sections: Accounts, Trading, and Payouts, allowing you to handle everything from deposits and withdrawals to currency conversion and local payouts.


Products and Functionality

1. Accounts

The Accounts section centralises balance management, deposits, and withdrawals, supporting both trading and payouts. This section provides essential endpoints to manage your funds effectively across multiple currencies.

  • Balances: View available, locked, and total balances.
  • Deposits: Fund your account with supported currencies (Listed below).
  • Withdrawals: Withdraw funds to your bank account or crypto wallet.

2. Trading

The Trading API enables you to convert between major and local currencies. Start by obtaining a quote, and once accepted, initiate the trade to move funds between currencies.

  • Get Quote: Retrieve a conversion rate and a quote_id for a desired trade.
  • Accept Quote: Lock in the rate by accepting the quote within the valid timeframe to create the trade.
  • History: View past trades for reference and auditing.

Use Case: Ideal for businesses requiring high-volume currency conversions or managing funds across different currencies.

3. Payouts

The Payouts API is designed for distributing funds across regions, supporting both bank and mobile wallet transfers. The Payouts API works alongside the Trading and Accounts sections to ensure sufficient local currency balances for payouts.

  • Single and Bulk Payouts: Send individual or batch payouts to bank accounts or mobile wallets.
  • Payout History: Track previous payouts by filtering for a specific payout ID or date range.

Use Case: Useful for businesses that manage regular disbursements or large volumes of regional payouts.


Workflow Overview

  • Fund Account: Start by funding your CrissCross account with supported currency via the Deposit Endpoint in Accounts.
  • Check Balances: Use the Balances Endpoint to view all account balances.
  • Trade: Convert funds from major currencies to local currencies or vice versa using the Trading Endpoint.
  • Make Payouts: If you have sufficient balance in a supported payout currency you can initiate single or bulk payouts to recipients using the Payouts Endpoint.
  • Track Payouts: View payout transaction history with the Payout History Endpoint for tracking and auditing.

Authentication

To access the CrissCross API, include an API key in each request header as apiKey. If you need an API key, contact your account manager or info@crisscross.money.

  • Content-Type: Use application/json for all requests.
  • HTTPS Only: Non-secure requests are not supported.
  • Error Handling: Successful requests return an HTTP status code in the 200 range. Unauthorized requests return a 403 error.

Supported Currencies

The list of supported currencies is regularly updated to meet expanding market needs.

Fiat

  • Major Currencies: USD, EUR
  • Minor Currencies: NGN, XOF, XAF, GHS, KES, ZAR, AED, EGP, SAR

Crypto

  • Supported Currencies: USDT, USDC, BTC
  • Supported Networks: ERC20, TRC20, BTC

Notes

  • Payouts are only supported in Minor Currencies.
  • Direct trades between minor currencies (e.g., XOF to NGN) are not supported via the API. If you require trading between minor currencies, this can be arranged over-the-counter (OTC). Please contact us at info@crisscross.money for more information.

Access and Usage

The CrissCross API is governed by our Terms of Service. Ensure you have read and accepted these terms before integrating with our platform.

For any questions, feedback, or recommendations, please contact us at info@crisscross.money.


Base URL

Production:

https://router.crisscross.money/api/v1

Accounts

These endpoints support both trading and payout operations, giving you a unified view and control over your funds across various currencies.

Key Endpoints

  • Balances: Check available, locked, and total balances across all supported currencies. This endpoint provides a complete view of your funds held with CrissCross.
  • Deposits: Fund your account with our supported fiat and cryptocurrencies.
  • Withdrawals: Access funds from your CrissCross account by initiating withdrawals to a bank or crypto wallet.

Balances

View your account balances across supported currencies. Instantly retrieve information on available, locked, and total balances to effectively manage your funds.

Features:

  • Available Balance: The amount that is free and can be used for trading, withdrawals or payouts.
  • Locked Balance: The portion of the total balance currently involved in ongoing trades, pending deposits, or unprocessed withdrawals.
  • Total Balance: The sum of available and locked balances for each currency.
  • Negative Balance Support: A flag indicating if negative balances are allowed for a specific currency.

Example Use Case:

Use the Balances API to check your account status before initiating trades, withdrawals or payouts, ensuring you have sufficient funds available.

Supported Currencies:

The balances endpoint covers all currencies supported by CrissCross

Deposits

Fund your account with both fiat and cryptocurrency. Use our endpoints to securely generate deposit addresses, retrieve bank account details, and monitor your deposit history.

Supported Deposit currencies

Supported currencies can be found in Getting Started

Features:

  • Retrieve a crypto deposit address by specifying the currency and network (e.g., USDT on ERC20).
  • Get bank account details for fiat deposits.
  • Query deposit history, including timestamps, amounts, and status, for easy tracking.

Note:

Ensure that your deposit transactions follow the provided instructions to avoid delays. For any issues or questions, please contact us at info@crisscross.money.

Withdrawals

Request and track withdrawals from your account, whether you’re withdrawing fiat or cryptocurrency. Manage your funds with reliable and secure transfers to your preferred destinations.

Supported Withdrawal Options

Supported currencies can be found in Getting Started

Features:

  • Request Withdrawals: Initiate withdrawals by specifying the amount, currency, and, for crypto, the withdrawal address. Fiat withdrawals will be processed to your registered bank account.
  • Track Withdrawal History: Retrieve detailed logs of your withdrawal requests, including timestamps, amounts, and statuses.

Withdrawal Types:

  • FIAT: Withdraw funds to your linked bank account.
  • CRYPTO: Send funds to the specified crypto address.

Note:

Ensure that all withdrawal details are accurate to avoid delays. For assistance, contact info@crisscross.money

Request Withdrawal

Request a fiat or crypto withdrawal. If you request a fiat withdrawal, it will be made to the bank account you submitted when onboarding.

Body

  • The amount you wish to withdraw.
  • The currency you wish to withdraw.
  • The type of withdrawal. This can be:
    • FIAT for a fiat withdrawal.
    • CRYPTO for a crypto withdrawal.
  • For a CRYPTO withdrawal, specify a withdrawal address. Only TRC and ERC withdrawals are available so a network is not required.

Response

The response body contains the following:

  • The UUID of the withdrawal.
  • The time the withdrawal was received.
  • The currency of the withdrawal.
  • The amount of the withdrawal.
  • The type of withdrawal. This can be:
    • FIAT for a fiat withdrawal.
    • CRYPTO for a cryptocurrency withdrawal.
  • The withdrawal address if it is a crypto withdrawal.
  • The status of the withdrawal. This can be:
    • 'successful'
    • 'pending'
    • 'failed'

Header Parameters

apiKeystring

The apiKey is a header parameter used for authentication and authorization purposes when making requests to the POST /withdrawal endpoint.

Body Parameters

amountnumber

The amount parameter indicates the quantity of funds to be withdrawn from the brokerage account.

currencystring

The currency parameter specifies the type of currency for the withdrawal amount.

typestring

The type parameter specifies the method of withdrawal, such as bank transfer or check.

withdrawal_addressstring

The withdrawal_address is the destination address where the funds will be sent when requesting a withdrawal.

POST

/withdrawal

Select
1 2 3 4 5 6 7 8 curl --location 'https://router.crisscross.money/api/v1/withdrawal' \ --header 'apiKey: yourApiKey' \ --data '{ "amount": 44203, "currency": "USDT", "type": "CRYPTO", "withdrawal_address": "0xa5918637aee250c3c9a4fae698222f282cd0fd1f" }'

Withdrawal History

Query the withdrawal history for your brokerage account.

Query Parameters

  • Perform time-based filtering using start_time and end_time. Supplying a start_time will return all withdrawals that occurred *after* that timestamp. Supplying an end_time will return all orders that occurred *before* that timestamp.
  • 'currency' is the currency of the withdrawal.

Response

A list of withdrawals is returned. Each withdrawal contains:

  • The UUID of the withdrawal.
  • The time the withdrawal was received.
  • The currency of the withdrawal.
  • The amount of the withdrawal.
  • The type of withdrawal. This can be:
    • FIAT for a fiat withdrawal.
    • CRYPTO for a cryptocurrency withdrawal.
  • The withdrawal address if it is a crypto withdrawal.
  • The status of the withdrawal. This can be:
    • 'successful'
    • 'pending'
    • 'failed'

Header Parameters

apiKeystring

The API key used for authentication and authorization purposes.

Query Parameters

start_timestring

UNIX timestamp (UTC) that defines the start of the request window. All withdrawals that occured after this timestamp are returned.

end_timestring

UNIX timestamp (UTC) that defines the start of the request window. All withdrawals that occurred before this timestamp are returned.

currencystring

Currency of the withdrawal

Responses

200
Object

Response Attributes

withdrawal_idstring

The unique identifier for the withdrawal transaction.

created_atstring

The date and time when the withdrawal transaction was created.

amountnumber

The amount of currency involved in the withdrawal transaction.

currencystring

The currency in which the withdrawal transaction was made.

statusstring

The current status of the withdrawal transaction.

GET

/withdrawals?start_time=1688630864&end_time=1689073473&currency=ZAR

Select
1 2 curl --location 'https://router.crisscross.money/api/v1/withdrawals?start_time=1688630864&end_time=1689073473&currency=ZAR' \ --header 'apiKey: yourApiKey' \

Response

[
  {
    "withdrawal_id": "d2bc2a49-1725-467b-b3f3-30dd39603c3c",
    "created_at": "2023-07-07T13:39:17.450854Z",
    "amount": 1154293,
    "currency": "ZAR",
    "status": "successful"
  },
  {
    "withdrawal_id": "922c3212-1c4a-43de-8300-0872fa77e4d3",
    "created_at": "2023-07-07T09:09:16.92539Z",
    "amount": 1069069.36,
    "currency": "ZAR",
    "status": "successful"
  }
]

Trading

The Trading API allows you to execute currency conversions between major and local currencies. Follow these steps to create a trade:

Step 1

  • Get a Quote: Start by retrieving a quote for the currency conversion.
  • The API will respond with a quote_id and the applicable conversion rate. Note: The quote is valid for 5 seconds.

Step 2

  • Accept the Quote: To lock in the rate and create the trade, you need to accept the quote using the quote_id.

Use the Trading API to:

  • Access live rates for supported currency pairs
  • Request quotes and lock trades
  • View your order history

Payouts

The Payouts API enables you to send funds to recipients in supported regions via bank accounts or mobile wallets (MoMo). Whether handling individual transactions or large-volume disbursements, the Payouts API provides the flexibility to manage payouts reliably and efficiently.

Key Features

  • Single Payouts: Send a one-time payout to a recipient’s bank account or mobile wallet.
  • Bulk Payouts: Schedule multiple payouts in a single request, ideal for handling larger batches of disbursements.

Workflow

  • Check Balance: Use the Balances Endpoint to confirm sufficient funds in the payout currency.
  • Top-up Account (if needed): Convert from major currencies to the local currency using the Trading endpoint.
  • Initiate Payout: Send funds using either the single or bulk payout endpoints, depending on your needs.
  • Track Payout History: Use the Payout History Endpoint to monitor and review payout transactions, with options to filter by date range or specific payout ID.

The Payouts API is built for businesses that need to move money across regions reliably, whether for operational payments, customer disbursements, or payroll.