Getting Started
- Kooltra exposes a simple RESTful API to book trades, send payments, and manage accounts, beneficiaries and more. The API operates over HTTP and all requests/responses are JSON objects.
- To get started, please review the guide in full and reach out to your account manager or implementation@kooltra.com if you have any questions
Authentication
- Kooltra provides authentication with OAuth2 - Client Credentials
Access Tokens
- Upon request, Kooltra will provide the integrator with Sandbox and Production access credentials
Token Scopes
- We leverage the least privileged principle for integrations with regard to token generation
- Below is the list of scopes in Kooltra's API. At this time, Kooltra maintains scopes on behalf of the integrator during the onboarding process.
| Scope | Description | FQN |
|---|---|---|
| counterparty | Allows access to Counterparties API | api.kooltra.com/counterparty:write for write operationsapi.kooltra.com/counterparty:read for read operations |
| contact | Allows access to Contacts API | api.kooltra.com/contact:write for write operationsapi.kooltra.com/contact:read for read operations |
| trade | Allows access to Trades API | api.kooltra.com/trade:write for write operationsapi.kooltra.com/trade:read for read operations |
| beneficiary | Allows access to Beneficiaries API | api.kooltra.com/beneficiary:write for write operationsapi.kooltra.com/beneficiary:read for read operations |
| cashflow | Allows access to Cashflows API | api.kooltra.com/cashflow:write for write operationsapi.kooltra.com/cashflow:read for read operations |
| order | Allows access to Orders API | api.kooltra.com/order:write for write operationsapi.kooltra.com/order:read for read operations |
Development
- Kooltra offers integrators both Sandbox and Production environments
- Our process to go to production is as follows:
- Sandbox Connection: Integrator is provided Sandbox credentials
- Conformance Testing: Kooltra provides conformance tests matching the Integrator's use case. To receive our conformance test package, please reach out to implementation@kooltra.com.
- Production Connection: Once conformance tests are signed-off, Kooltra will provide production credentials for the integrator
- Final Sign-off: An additional set of production tests are run. Once confirmed, you will be able to use the API in production.
Status Codes
- Kooltra's API uses standard HTTP response codes.
- Any 200 response is successful
- Any 400-499 response means there was a business error, like a missing currency pair on a trade. These errors are typically something that you can fix in your request.
- Any 500 response means there was a system error, which is typically on our side and we will work to fix immediately.
Errors
- When there is an error response, Kooltra provides as much descriptive information as we can.
- Our errors include the following:
- Message: Describes the reason for error with as much context as we have
- Type: The category of error
- Code: The specific error code
Idempotent Requests
- Kooltra's API supports idempotent requests to help prevent you from accidentally issuing the same API call twice.
- This feature can be helpful if you are booking a trade, creating a payment, or updating a counterparty.
- To use our idempotency feature, you need to include an External Reference ID (a field in the request payload indicated as *idempotent) in all requests. The value is a user-defined unique identification used to both externally identify the record and avoid duplicate operations.
Additional Information
- Results are only saved if the request is successfully executed.
- The full operation may be complete even if there was a connection interruption or another external error that prevented us from responding to the original request.
- If the system is in the middle or has completed processing a request with an idempotency key and receives another request with the same key, it will return a 400 error for the newer request.
Rate Limits
- Sandbox: The current rate limit is 25 requests per second.
- Production: The current rate limit is 100 requests per second.
- If the rate limit is exceeded you will receive a 400 error response
Platform Fundamentals
Counterparties
- In Kooltra's platform, counterparties include client accounts/counterparties, LP counterparties, and internal accounts
- You can create counterparties through our API using our Company, Individual, or Internal endpoints
- Company Counterparties: For client accounts that are legal entities or businesses.
- Note: LP counterparty creation is not currently available through the API and can only be created using Kooltra's user interface
- Individual Counterparties: For client accounts that are individuals.
- Internal Counterparty: For accounts that are used internally, like a treasury or trading desk.
- Company Counterparties: For client accounts that are legal entities or businesses.
- Kooltra's API currently supports the below settlement types. Based on the settlement type selected, the trades will be treated differently in settlement workflows.
- Vostro: indicates the counterparty will settle on a net basis
- Payments: indicates the counterparty will settle on a gross basis
- For more information on counterparties please visit Knowledge Base - Counterparty Management
Trades
- In Kooltra, all trades are booked from the "House" perspective
- We currently support the following trade types in the API. Each trade type has its own set of endpoints to create and update, with a shared cancellation endpoint.
- Spot/Forward
- FX Swap
- FX NDF
- You have the ability to book single-leg counterparty trades or double-leg (i.e., client & hedge) trades with our API
- Double Leg trade:
- When a "hedgeCounterpartyId" is sent in the request, Kooltra will consider this a double leg trade
- When a double leg trade is created, two trades will be booked in the system reflecting the client and hedge legs respectively
- Double Leg trade:
- For more information on Kooltra's trading capabilities please visit Knowledge Base - Trade Management
Beneficiaries
- A Beneficiary represents a bank account owned by a particular individual/entity that is associated with a counterparty.
- Each Beneficiary can have one or more settlement methods associated with it, which define the mechanism for how funds are paid into, or received from, the bank account (e.g. wire, cheque, etc).
- For more information on beneficiaries please visit Knowledge Base - Beneficiaries
Cashflows
- Cashflows can be created as either incoming funds or outgoing payments. Kooltra distinguishes between incoming or outgoing funds using the "type" field in the payment request body.
- The type field can have the following values:
- WireIn: Used for incoming funds
- WireOut: Used for outgoing funds
- We also support vostro and nostro adjustments. Vostro adjustments are client account adjustments, while nostro adjustments are for bank/LP account adjustments
- For more information on cashflows and settlements please refer to Knowledge Base - Cash Management