Chimoney Sub-Accounts API
Create, update, delete, and list sub-accounts (wallet accounts) under your organization, and manage sub-account communities and their members.
Create, update, delete, and list sub-accounts (wallet accounts) under your organization, and manage sub-account communities and their members.
openapi: 3.0.3
info:
title: Chimoney API
description: 'Chimoney is a developer-first global payouts and disbursement platform with deep coverage
across Africa and 130+ countries. The REST API sends money to bank accounts, mobile money wallets,
airtime, gift cards, Chimoney wallets, and Interledger wallet addresses; manages multicurrency wallets
and sub-accounts; supports redemption, payment collection, and informational lookups (banks, assets,
exchange rates). All requests are authenticated with an API key passed in the X-API-KEY header, issued
from the Chimoney developer dashboard (dash.chimoney.io/developers). A separate sandbox host is available
for testing. This is a curated, representative subset of the live OpenAPI (source: https://api.chimoney.io/v0.2/swagger.json,
spec version 0.2.2); paths, methods, and summaries are grounded in that document. Request-body schemas
are representative and simplified for the most common endpoints - consult the official docs for the
full field set.'
version: 0.2.2
contact:
name: Chimoney
url: https://chimoney.io
servers:
- url: https://api.chimoney.io
description: Production (v0.2)
- url: https://api-v2-sandbox.chimoney.io
description: Sandbox (v0.2)
security:
- apiKeyAuth: []
tags:
- name: Payouts
description: Send money to banks, mobile money, airtime, gift cards, Chimoney wallets, Interac, and
Interledger wallet addresses.
- name: Interledger
description: ''
- name: Wallet
description: List, look up, and transfer between Chimoney wallets.
- name: MultiCurrency Wallets
description: Create and manage multicurrency wallets and transfer between them.
- name: SubAccount
description: Create and manage sub-accounts (wallet accounts) and communities under your organization.
- name: Redeem
description: Redeem issued Chimoney, airtime, gift cards, and mobile money.
- name: Info
description: 'Reference lookups: supported banks, assets, exchange rates, currency conversion, and bank
account verification.'
- name: Account
description: Retrieve transactions, public profiles, transfer between accounts, and issue wallet addresses.
- name: Payments
description: Initiate and verify inbound payment (collection) requests.
paths:
/v0.2/payouts/bank:
post:
operationId: post_v0.2_payouts_bank
tags:
- Payouts
summary: Payout to Bank in a supported Country.
description: Payout to Bank in a supported Country.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subAccount:
type: string
description: Subaccount (wallet account) to payout from, if any.
turnOffNotification:
type: boolean
description: Disables email and other notifications from Chimoney.
debitCurrency:
type: string
description: Wallet currency to debit from.
example: CAD
banks:
type: array
description: Bank payout instructions.
items:
type: object
properties:
countryToSend:
type: string
example: Nigeria
account_bank:
type: string
description: Bank code.
example: '044'
account_number:
type: string
example: 0690000031
valueInUSD:
type: number
example: 10
reference:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/mobile-money:
post:
operationId: post_v0.2_payouts_mobile-money
tags:
- Payouts
summary: Payout Mobile Money (Momo).
description: Payout Mobile Money (Momo).
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subAccount:
type: string
turnOffNotification:
type: boolean
momos:
type: array
description: Mobile money payout instructions.
items:
type: object
properties:
countryToSend:
type: string
example: Kenya
phoneNumber:
type: string
example: '254710102720'
valueInUSD:
type: number
example: 10
momoCode:
type: string
example: MPS
reference:
type: string
narration:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/airtime:
post:
operationId: post_v0.2_payouts_airtime
tags:
- Payouts
summary: Payout Airtime to a Phone number.
description: Payout Airtime to a Phone number.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subAccount:
type: string
turnOffNotification:
type: boolean
airtimes:
type: array
items:
type: object
properties:
countryToSend:
type: string
example: Nigeria
phoneNumber:
type: string
example: '+2348000000000'
valueInUSD:
type: number
example: 5
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/gift-card:
post:
operationId: post_v0.2_payouts_gift-card
tags:
- Payouts
summary: Payout Giftcards to an email.
description: Payout Giftcards to an email.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subAccount:
type: string
turnOffNotification:
type: boolean
giftcards:
type: array
description: Gift card payout instructions.
items:
type: object
properties:
email:
type: string
example: test@example.com
valueInUSD:
type: number
example: 10
redeemData:
type: object
description: Gift card brand/product selection.
narration:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/chimoney:
post:
operationId: post_v0.2_payouts_chimoney
tags:
- Payouts
summary: Payout Chimoney.
description: Payout Chimoney.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subAccount:
type: string
turnOffNotification:
type: boolean
chimoneys:
type: array
description: Chimoney payout instructions.
items:
type: object
properties:
email:
type: string
example: test@example.com
phone:
type: string
example: '+16471112222'
valueInUSD:
type: number
example: 10
amount:
type: number
description: Amount in specified currency. Required if currency is set.
currency:
type: string
description: ISO currency code.
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/wallet:
post:
operationId: post_v0.2_payouts_wallet
tags:
- Payouts
summary: Payout to a Chimoney Wallet.
description: Payout to a Chimoney Wallet.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/interledger-wallet-address:
post:
operationId: post_v0.2_payouts_interledger-wallet-address
tags:
- Payouts
- Interledger
summary: Payout to a Interledger Wallet Address.
description: Payout to a Interledger Wallet Address.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/interac:
post:
operationId: post_v0.2_payouts_interac
tags:
- Payouts
summary: Payout Interac.
description: Payout Interac.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/bills/ca:
post:
operationId: post_v0.2_payouts_bills_ca
tags:
- Payouts
summary: Payout Canadian Bill payment.
description: Payout Canadian Bill payment.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/initiate-chimoney:
post:
operationId: post_v0.2_payouts_initiate-chimoney
tags:
- Payouts
summary: Initiate Chimoney transaction.
description: Initiate Chimoney transaction.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/process:
post:
operationId: post_v0.2_payouts_process
tags:
- Payouts
summary: Debit wallet to process unpaid transaction.
description: Debit wallet to process unpaid transaction.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/payouts/status:
post:
operationId: post_v0.2_payouts_status
tags:
- Payouts
summary: Check Payout status.
description: Check Payout status.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- chiRef
properties:
chiRef:
type: string
description: Chimoney transaction reference (chiRef) to check.
subAccount:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/wallets/list:
post:
operationId: post_v0.2_wallets_list
tags:
- Wallet
summary: List associated wallets.
description: List associated wallets.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
subAccount:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/wallets/lookup:
post:
operationId: post_v0.2_wallets_lookup
tags:
- Wallet
summary: Get single wallet details.
description: Get single wallet details.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- walletID
properties:
walletID:
type: string
subAccount:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/wallets/transfer:
post:
operationId: post_v0.2_wallets_transfer
tags:
- Wallet
summary: Transfer between wallets.
description: Transfer between wallets.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- receiver
- valueInUSD
properties:
subAccount:
type: string
receiver:
type: string
description: Valid Chimoney user or organization ID.
wallet:
type: string
description: Wallet type. One of ["chi","momo","airtime"]. Leave blank unless you understand
wallet types.
example: chi
valueInUSD:
type: number
example: 200
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/multicurrency-wallets/create:
post:
operationId: post_v0.2_multicurrency-wallets_create
tags:
- MultiCurrency Wallets
summary: Create a new Multicurrency Wallet.
description: Create a new Multicurrency Wallet.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
example: Mide Jones
email:
type: string
example: user@example.com
firstName:
type: string
lastName:
type: string
phoneNumber:
type: string
example: '+16471234567'
meta:
type: object
description: Metadata to store about the account.
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/multicurrency-wallets/get:
get:
operationId: get_v0.2_multicurrency-wallets_get
tags:
- MultiCurrency Wallets
summary: Get details of an existing multicurrency wallet.
description: Get details of an existing multicurrency wallet.
parameters:
- name: id
in: query
required: true
description: Multicurrency wallet ID.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/multicurrency-wallets/list:
get:
operationId: get_v0.2_multicurrency-wallets_list
tags:
- MultiCurrency Wallets
summary: Get all multicurrency wallets of an organization/account.
description: Get all multicurrency wallets of an organization/account.
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/multicurrency-wallets/update:
post:
operationId: post_v0.2_multicurrency-wallets_update
tags:
- MultiCurrency Wallets
summary: Update a multicurrency-wallets.
description: Update a multicurrency-wallets.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/multicurrency-wallets/transfer:
post:
operationId: post_v0.2_multicurrency-wallets_transfer
tags:
- MultiCurrency Wallets
- Interledger
summary: Transfer from multicurrency wallet to another wallet, an email or a phone number.
description: Transfer from multicurrency wallet to another wallet, an email or a phone number.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
walletID:
type: string
receiver:
type: string
description: Destination wallet ID, email, or phone number.
amountToSend:
type: number
currency:
type: string
example: USD
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/multicurrency-wallets/transfer/quote:
post:
operationId: post_v0.2_multicurrency-wallets_transfer_quote
tags:
- MultiCurrency Wallets
summary: Get Quote to Transfer between multicurrency wallets.
description: Get Quote to Transfer between multicurrency wallets.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/sub-account/create:
post:
operationId: post_v0.2_sub-account_create
tags:
- SubAccount
- Interledger
summary: Create a new sub-account.
description: Create a new sub-account.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- name
properties:
name:
type: string
example: Mide Jones
email:
type: string
firstName:
type: string
lastName:
type: string
phoneNumber:
type: string
example: '+16471234567'
meta:
type: object
id:
type: string
description: Optional valid UUID for the user.
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/sub-account/get:
get:
operationId: get_v0.2_sub-account_get
tags:
- SubAccount
summary: Get details of an existing sub account.
description: Get details of an existing sub account.
parameters:
- name: id
in: query
required: true
description: Sub account ID.
schema:
type: string
- name: communityID
in: query
required: false
description: Community ID.
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/sub-account/list:
get:
operationId: get_v0.2_sub-account_list
tags:
- SubAccount
summary: Get all sub-accounts associated with a user.
description: Get all sub-accounts associated with a user.
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/sub-account/update:
post:
operationId: post_v0.2_sub-account_update
tags:
- SubAccount
summary: Update a sub-account.
description: Update a sub-account.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/sub-account/delete:
delete:
operationId: delete_v0.2_sub-account_delete
tags:
- SubAccount
summary: Delete an existing sub-account.
description: Delete an existing sub-account.
parameters:
- name: id
in: query
required: true
description: Sub account ID.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/sub-account/community/create:
post:
operationId: post_v0.2_sub-account_community_create
tags:
- SubAccount
summary: Create a sub-account community associated with a user.
description: Create a sub-account community associated with a user.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/sub-account/community/members:
get:
operationId: get_v0.2_sub-account_community_members
tags:
- SubAccount
summary: Get community members .
description: Get community members .
parameters:
- name: communityID
in: query
required: false
description: Community ID
schema:
type: integer
- name: limit
in: query
required: false
description: maximum number of users to return - default is 50
schema:
type: integer
- name: startAfterId
in: query
required: false
description: ID of the last User Data retrieved - important for retrieivng subsequent pages
schema:
type: string
- name: startBeforeId
in: query
required: false
description: ID of the first User Data retrieved - important for retrieivng previous pages
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/redeem/any:
post:
operationId: post_v0.2_redeem_any
tags:
- Redeem
summary: Redeem any.
description: Redeem any.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/redeem/chimoney:
post:
operationId: post_v0.2_redeem_chimoney
tags:
- Redeem
summary: Redeem Chimoney.
description: Redeem Chimoney.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- chiRef
properties:
chiRef:
type: string
description: Chimoney reference to redeem.
subAccount:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/redeem/airtime:
post:
operationId: post_v0.2_redeem_airtime
tags:
- Redeem
summary: Redeem airtime.
description: Redeem airtime.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/redeem/gift-card:
post:
operationId: post_v0.2_redeem_gift-card
tags:
- Redeem
summary: Redeem giftcard.
description: Redeem giftcard.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/redeem/mobile-money:
post:
operationId: post_v0.2_redeem_mobile-money
tags:
- Redeem
summary: Redeem mobile money.
description: Redeem mobile money.
requestBody:
content:
application/json:
schema:
type: object
additionalProperties: true
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/info/assets:
get:
operationId: get_v0.2_info_assets
tags:
- Info
summary: Get list of all assests.
description: Get list of all assests.
parameters:
- name: countryCode
in: query
required: false
description: Country code symbol e.g NG, US, GH.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/StandardResponse'
'401':
$ref: '#/components/responses/Unauthorized'
/v0.2/info/country-banks:
get:
operationId: get_v0.2_info_country-banks
tags:
- Info
summary: Get list of Supported banks and bank code.
description: Get list of Supported banks and bank code.
parameters:
- name: countryCode
in: query
required: true
description: Country code symbol e.g NG, US, GH.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/c
# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/chimoney/refs/heads/main/openapi/chimoney-openapi.yml