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.

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

Request for Quote

Quotes can be requested by supplying a source currency, a destination currency, and either a source or destination amount. Quotes expire after 5 seconds.

Query Parameters

  • 'from' is used to denote the source currency parameter,
  • 'to' is used to denote the destination currency parameter.

Either 'want' or 'have' can be supplied to indicate the requested trade volume. You can't supply values for both.

  • 'want' denotes the desired amount of destination currency.
  • 'have' denotes the amount of source currency that is desired to be traded.

Response

The following data is returned in the response body:

  • The source and destination currencies that were requested in the query parameters.
  • The trade rate (in source currency).
  • A quote token that can be used to lock a trade.
  • Timestamp of when the quote expires.
  • Timestamp of when the quote is requested.

Header Parameters

apiKeystring

The API key used for authentication purposes.

Query Parameters

fromstring

Source currency.

tostring

Destination currency.

havestring

Responses

200
Object

Response Attributes

from_currencystring

The currency being exchanged from.

from_amountnumber

The amount of currency being traded from.

to_currencystring

The currency to which the trade will be made.

to_amountnumber

The amount of currency being traded to.

trade_ratenumber

The trade rate represents the exchange rate used for the quote calculation.

trade_rate_inversenumber

The inverse of the trade rate used for the quote calculation.

spot_ratenumber

The spot rate used for the quote calculation.

spot_rate_inversenumber

The inverse of the spot rate used for the quote calculation.

typestring

Indicates the type of quote request being made.

quote_idstring

Unique identifier for the quote request.

created_atnumber

The date and time when the quote request was created.

expires_atnumber

The expiration date and time of the quote request.

GET

/quote?from=USDT&to=GHS&have=1000

Select
1 2 curl --location 'https://router.crisscross.money/api/v1/quote?from=USDT&to=GHS&have=1000' \ --header 'apiKey: yourApiKey' \

Response

{
  "from_currency": "USDT",
  "from_amount": 1000,
  "to_currency": "GHS",
  "to_amount": 18773.67896311067,
  "trade_rate": 0.05326606479022836,
  "trade_rate_inverse": 18.77367896311067,
  "spot_rate": 0.05449716015298443,
  "spot_rate_inverse": 18.34958,
  "type": "FIAT",
  "quote_id": "3565a01b-9d0b-4f7a-bc0d-88cb4217ce8e",
  "created_at": 1686821355,
  "expires_at": 1686821385
}

Accept Quote

Once you have requested a quote and wish to accept it, you have 5 seconds to use the Quote ID you received to lock the trade.

Body

  • The Quote ID received from the /quote endpoint.

Response

The following data is returned in the response body:

  • Order ID.
  • The source and destination currencies that were requested in the quote.
  • The trade rate (in source currency).
  • Quantity of destination currency traded.
  • Timestamp of when the trade was locked.

Header Parameters

apiKeystring

The API key required for authentication.

Body Parameters

quote_idstring

Responses

200
Object

Response Attributes

order_idstring

The unique identifier for the order associated with the quote.

from_currencystring

The currency from which the amount is originating.

from_amountnumber

The amount in the "from" currency.

to_currencystring

The currency to which the amount will be received.

to_amountnumber

The amount to be received in the "to" currency.

trade_ratenumber

The trade rate at which the quote is accepted.

trade_rate_inversenumber

The inverse of the trade rate for the quote.

spot_ratenumber

The spot rate at which the quote is based.

spot_rate_inversenumber

The inverse of the spot rate for the quote.

typestring

The type of quote response received.

quote_idstring

The unique identifier for the quote.

created_atnumber

The timestamp indicating when the quote was created.

POST

/quote

Select
1 2 3 4 5 curl --location 'https://router.crisscross.money/api/v1/quote' \ --header 'apiKey: yourApiKey' \ --data '{ "quote_id": "{{quote_id}}" }'

Response

{
  "order_id": "5b82a6e1-2b02-4d51-853b-ef1deeeee7f2",
  "from_currency": "USDT",
  "from_amount": 5,
  "to_currency": "GHS",
  "to_amount": 93.86839481555334,
  "trade_rate": 0.053106744556558685,
  "trade_rate_inverse": 18.83,
  "spot_rate": 0.05449003322802226,
  "spot_rate_inverse": 18.35198,
  "type": "FIAT",
  "quote_id": "b69a7a83-a0ef-4124-9360-b0ceed69276a",
  "created_at": 1686821547
}

History

Endpoints specific to querying order history.

Order History (Multiple)

Query order history.

Query Parameters

  • Perform time-based filtering using start_time and end_time. Supplying a start_time will return all orders that occurred *after* that timestamp. Supplying an end_time will return all orders that occurred *before* that timestamp.
  • To is the source currency of the order.
  • From is the destination currency of the order.

Response

A list of orders is returned. For each order, the following data is returned.

  • Order ID.
  • The source and destination currencies that were requested in the quote.
  • The trade rate (in source currency).
  • Quantity of destination currency traded.
  • Timestamp of when the trade was locked.

Header Parameters

apiKeystring

The API key required for authentication.

Query Parameters

start_timestring

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

end_timestring

UNIX timestamp (UTC) that defines the end of the request window. All trades that occured before this timestamp are returned.

fromstring

Source currency of the trades

tostring

Destination currency of the trades.

Responses

200
Object

Response Attributes

order_idstring

The unique identifier for the order.

from_currencystring

The currency from which the amount is converted.

from_amountnumber

The amount in the 'from' currency.

to_currencystring

The currency to which the amount is converted.

to_amountnumber

The amount in the 'to' currency.

trade_ratenumber

The trade rate for the order.

trade_rate_inversenumber

The inverse of the trade rate.

spot_ratenumber

The spot rate for the order.

spot_rate_inversenumber

The inverse of the spot rate.

typestring

The type of order.

quote_idstring

The unique identifier for the quote.

created_atnumber

The timestamp when the order was created.

GET

/orders?start_time=1686824750&end_time=1686308439&from=ZAR&to=USDT

Select
1 2 curl --location 'https://router.crisscross.money/api/v1/orders?start_time=1686824750&end_time=1686308439&from=ZAR&to=USDT' \ --header 'apiKey: yourApiKey' \

Response

[
  {
    "order_id": "6f6a8f83-fb3f-408a-a54e-603bdba37958",
    "from_currency": "ZAR",
    "from_amount": 94.93395,
    "to_currency": "USDT",
    "to_amount": 5,
    "trade_rate": 18.98679,
    "trade_rate_inverse": 0.05266819720447743,
    "spot_rate": 18.40476,
    "spot_rate_inverse": 0.054333770176845556,
    "type": "FIAT",
    "quote_id": "2bd09775-1207-45d0-a060-0792058eaaf0",
    "created_at": 1686824758
  }
]

Order History (Single)

Query data relating to a single order. Supply the order ID as a path parameter.

Response

A single order is returned. The following data is returned.

  • Order ID.
  • The source and destination currencies that were requested in the quote.
  • The trade rate (in source currency).
  • Quantity of destination currency traded.
  • Timestamp of when the trade was locked.

Header Parameters

apiKeystring

The API key for authentication.

Responses

200
Object

Response Attributes

order_idstring

The unique identifier for the order.

from_currencystring

The currency from which the amount is converted.

from_amountnumber

The amount in the 'from_currency'.

to_currencystring

The currency to which the amount is converted.

to_amountnumber

The amount in the 'to_currency'.

trade_ratenumber

The exchange rate used for the trade.

trade_rate_inversenumber

The inverse of the trade rate.

spot_ratenumber

The spot exchange rate.

spot_rate_inversenumber

The inverse of the spot rate.

typestring

The type of the order.

quote_idstring

The unique identifier for the quote.

created_atnumber

The timestamp when the order was created.

GET

/orders/5b82a6e1-2b02-4d51-853b-ef1deeeee7f2

Select
1 2 curl --location 'https://router.crisscross.money/api/v1/orders/5b82a6e1-2b02-4d51-853b-ef1deeeee7f2' \ --header 'apiKey: yourApiKey' \

Response

{
  "order_id": "5b82a6e1-2b02-4d51-853b-ef1deeeee7f2",
  "from_currency": "USDT",
  "from_amount": 5,
  "to_currency": "ZAR",
  "to_amount": 94.14999999999999,
  "trade_rate": 0.053106744556558685,
  "trade_rate_inverse": 18.83,
  "spot_rate": 0.05449003322802226,
  "spot_rate_inverse": 18.35198,
  "type": "FIAT",
  "quote_id": "b69a7a83-a0ef-4124-9360-b0ceed69276a",
  "created_at": 1686821547
}

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.