Services

This page includes documentation to services provided by the bank, such as cards, authorization hold and foreign currency conversion.

Cards and authorization hold can be created in the Cards service and the HoldConfig service allows configuring global and merchant-specific authorization hold configurations.

Note that the creation and deletion of cards is not managed in this section but in the respective accounts section.

Fee tables for currency conversion can be managed through the Rates and Rate service.

CARDS

Package cards defines services for managing card authorization holds, card transactions, and retrieving information about card account balances. It does not manage the creation and deletion of cards. To do so, use the applicable account services (loan accounts/deposit accounts).

GetAccountBalances

GET /v1/cards/{CardID}/balance

Retrieves the current account balances of the specified card..

Parameters
Name Description Type
Query Parameters
card_id The ID of the card to retrieve balances for String
  • Name Description Type
    account_id The ID of the account String
    available The amount of balance available in a deposit or credit account Amount
    total The current balance of a deposit account or principal balance of a revolving credit Amount
    credit_limit The overdraft limit of a deposit account or the loan amount in case of a credit account Amount
    card_type The tyoe of card of the account Type

CreateHold

POST /v1/cards/{CardID}/holds

Creates an authorization hold..

Parameters
Name Description Type
Query Parameters
card_id The ID of the card to create a hold for String
Request Body (Hold)
Name Description Type
hold_id The ID of the authorization hold String
account_id The ID of the account linked with the authorization hold String
advice True if the request should be accepted without balance validation Boolean
amount The amount of money to be held Amount
original_amount The original amount of money to be held Amount
card_acceptor The details of the card acceptor Acceptor
exchange_rate The exchange rate for the original currency Float(64)
card_id The ID of the card String
type The type of the card for the authorization hold Type
source The monetary source of the authorization hold HoldSource
status The status of the authorization hold HoldStatus
user_transaction_time The time at which the user made the authorization hold Timestamp
  • Name Description Type
    hold_id The ID of the authorization hold String
    account_id The ID of the account linked with the authorization hold String
    advice True if the request should be accepted without balance validation Boolean
    amount The amount of money to be held Amount
    original_amount The original amount of money to be held Amount
    card_acceptor The details of the card acceptor Acceptor
    exchange_rate The exchange rate for the original currency Float(64)
    card_id The ID of the card String
    type The type of the card for the authorization hold Type
    source The monetary source of the authorization hold HoldSource
    status The status of the authorization hold HoldStatus
    user_transaction_time The time at which the user made the authorization hold Timestamp

GetHold

GET /v1/cards/{CardID}/holds/{HoldID}

Retrieves an authorization hold..

Parameters
Name Description Type
Query Parameters
card_id The ID of the card String
hold_id The reference ID of the authorization hold String
  • Name Description Type
    hold_id The ID of the authorization hold String
    account_id The ID of the account linked with the authorization hold String
    advice True if the request should be accepted without balance validation Boolean
    amount The amount of money to be held Amount
    original_amount The original amount of money to be held Amount
    card_acceptor The details of the card acceptor Acceptor
    exchange_rate The exchange rate for the original currency Float(64)
    card_id The ID of the card String
    type The type of the card for the authorization hold Type
    source The monetary source of the authorization hold HoldSource
    status The status of the authorization hold HoldStatus
    user_transaction_time The time at which the user made the authorization hold Timestamp

UpdateHold

PUT /v1/cards/{CardID}/holds/{HoldID}

Updates an authorization hold..

Parameters
Name Description Type
Query Parameters
card_id The ID of the card of authorization String
hold_id The reference ID of the authorization hold String
Request Body (Hold)
Name Description Type
hold_id The ID of the authorization hold String
account_id The ID of the account linked with the authorization hold String
advice True if the request should be accepted without balance validation Boolean
amount The amount of money to be held Amount
original_amount The original amount of money to be held Amount
card_acceptor The details of the card acceptor Acceptor
exchange_rate The exchange rate for the original currency Float(64)
card_id The ID of the card String
type The type of the card for the authorization hold Type
source The monetary source of the authorization hold HoldSource
status The status of the authorization hold HoldStatus
user_transaction_time The time at which the user made the authorization hold Timestamp
  • Name Description Type
    hold_id The ID of the authorization hold String
    account_id The ID of the account linked with the authorization hold String
    advice True if the request should be accepted without balance validation Boolean
    amount The amount of money to be held Amount
    original_amount The original amount of money to be held Amount
    card_acceptor The details of the card acceptor Acceptor
    exchange_rate The exchange rate for the original currency Float(64)
    card_id The ID of the card String
    type The type of the card for the authorization hold Type
    source The monetary source of the authorization hold HoldSource
    status The status of the authorization hold HoldStatus
    user_transaction_time The time at which the user made the authorization hold Timestamp

AdjustHold

POST /v1/cards/{CardID}/holds/{HoldID}:adjust

Adjusts the amount of an authorization hold. The amount represents the difference, which can be positive or negative..

Parameters
Name Description Type
Query Parameters
card_id The ID of the card of authorization String
hold_id The reference ID of the authorization hold String
Request Body (HoldAdjustment)
Name Description Type
adjustment_id The ID of the decrease/increase request String
advice True if the request should be accepted without balance validation Boolean
change The money to be subtracted/added to the authorization hold amount Amount
  • Name Description Type
    hold_id The ID of the authorization hold String
    account_id The ID of the account linked with the authorization hold String
    advice True if the request should be accepted without balance validation Boolean
    amount The amount of money to be held Amount
    original_amount The original amount of money to be held Amount
    card_acceptor The details of the card acceptor Acceptor
    exchange_rate The exchange rate for the original currency Float(64)
    card_id The ID of the card String
    type The type of the card for the authorization hold Type
    source The monetary source of the authorization hold HoldSource
    status The status of the authorization hold HoldStatus
    user_transaction_time The time at which the user made the authorization hold Timestamp

DeleteHold

DELETE /v1/cards/{CardID}/holds/{HoldID}

Revokes an authorization hold..

Parameters
Name Description Type
Query Parameters
hold_id The hold ID of the authorization hold String
card_id The reference of the card String

CreateTransaction

POST /v1/cards/{CardID}/transactions

Creates a financial transaction..

Parameters
Name Description Type
Query Parameters
card_id The ID of the card to create the transaction for String
Request Body (NewTransaction)
Name Description Type
transaction The transaction to create Transaction
first_repay_time The first time repayment should be done for a loan transaction Timestamp
increase_amount_if_needed A flag indicating that the loan account limit should be increased if the loan account had insufficient balances Boolean
transaction_channel_id The ID of the channel through which the payment is done String
  • Name Description Type
    transaction_id The ID of the transaction String
    advice True if the request should be accepted without balance validation Boolean
    amount The amount of money to to be withdrawn in the financial transaction Amount
    acceptor The card acceptor processing the transaction Acceptor
    card_id The ID of the card used to make the transaction String
    authorization_id The ID of the authorization hold String
    transaction_time The time of the transaction Timestamp

ReverseTransaction

POST /v1/cards/{CardID}/transactions/{RefID}/reverse

Reverses a card transaction..

Parameters
Name Description Type
Query Parameters
card_id The ID of the card to reverse the transaction for String
ref_id The reference ID of the card transaction to reverse String
Request Body (TransactionReversal)
Name Description Type
amount The amount to be credited to client from original transaction Amount
transaction_channel_id The ID of the channel through which the payment is done String
  • Name Description Type
    transaction_id The ID of the transaction String
    advice True if the request should be accepted without balance validation Boolean
    amount The amount of money to to be withdrawn in the financial transaction Amount
    acceptor The card acceptor processing the transaction Acceptor
    card_id The ID of the card used to make the transaction String
    authorization_id The ID of the authorization hold String
    transaction_time The time of the transaction Timestamp

CreateHoldConfig

POST /v1/holds

Creates a new merchant-specific authorization hold..

Request Body (HoldConfig)
Name Description Type
merchant_code The code of the merchant to create a merchant authorization hold for String
duration The duration before the hold expires Duration
description The description of the authorization hold String
  • Name Description Type
    merchant_code The code of the merchant to create a merchant authorization hold for String
    duration The duration before the hold expires Duration
    description The description of the authorization hold String

ListHoldConfigs

GET /v1/holds

Lists merchant-specific authorization holds..

Parameters
Name Description Type
Query Parameters
page_token The token to use for pagination String
page_size The number of holds to return per page Integer
order_by The field to order holds by String
filter The filter to apply to the holds String
  • Name Description Type
    total The total number of configs matching the filter Integer
    remaining The number of configs remaining in the list, including the configs in the response Integer
    configs The list of merchant-specific authorization hold configurations Array[HoldConfig]
    next_page_token The token to use for pagination String

GetHoldConfig

GET /v1/holds/{MerchantCode}

Retrieves the specified merchant-specific authorization hold. To retrieve the default authorization hold, use "default" as the merchant code..

Parameters
Name Description Type
Query Parameters
merchant_code The code of the merchant to retrieve String
  • Name Description Type
    merchant_code The code of the merchant to create a merchant authorization hold for String
    duration The duration before the hold expires Duration
    description The description of the authorization hold String

UpdateHoldConfig

PUT /v1/holds

Updates a merchant-specific authorization hold. To update the default authorization hold, use "default" as the merchant code..

Parameters
Name Description Type
Query Parameters
merchant_code The code of the merchant to update String
Request Body (HoldConfig)
Name Description Type
merchant_code The code of the merchant to create a merchant authorization hold for String
duration The duration before the hold expires Duration
description The description of the authorization hold String
  • Name Description Type
    merchant_code The code of the merchant to create a merchant authorization hold for String
    duration The duration before the hold expires Duration
    description The description of the authorization hold String

DeleteHoldConfig

DELETE /v1/holds/{MerchantCode}

Deletes the specified merchant-specific authorization hold..

Parameters
Name Description Type
Query Parameters
merchant_code The code of the merchant to delete String

CURRENCIES

Package currencies allows creating and managing currencies and accounting rates.

CreateCurrency

POST /v1/currencies

Creates the specified currency..

Request Body (Currency)
Name Description Type
code The ISO3 currency code of the currency String
name The name of the currency String
symbol The symbol for the currency String
format The format string for displaying the currency String
decimals The number of decimal places to use for the currency Integer
  • Name Description Type
    code The ISO3 currency code of the currency String
    name The name of the currency String
    symbol The symbol for the currency String
    format The format string for displaying the currency String
    decimals The number of decimal places to use for the currency Integer

ListCurrencies

GET /v1/currencies

Lists the currencies..

Parameters
Name Description Type
Query Parameters
page_token The page token for the next page of results String
page_size The maximum number of results to return Integer
order_by The field to order the results by String
filter The filter to apply to the results String
  • Name Description Type
    total The total number of currencies matching the filter Integer
    remaining The number of currencies remaining in the list, including the currencies in the response Integer
    currencies The list of currencies Array[Currency]
    next_page_token The page token for the next page of results String

GetCurrency

GET /v1/currencies/{Code}

Retrieves the specified currency..

Parameters
Name Description Type
Query Parameters
code The code of the currency to retrieve String
  • Name Description Type
    code The ISO3 currency code of the currency String
    name The name of the currency String
    symbol The symbol for the currency String
    format The format string for displaying the currency String
    decimals The number of decimal places to use for the currency Integer

UpdateCurrency

PUT /v1/currencies/{Code}

Updates the specified currency..

Parameters
Name Description Type
Query Parameters
code The code of the currency to update String
Request Body (Currency)
Name Description Type
code The ISO3 currency code of the currency String
name The name of the currency String
symbol The symbol for the currency String
format The format string for displaying the currency String
decimals The number of decimal places to use for the currency Integer
  • Name Description Type
    code The ISO3 currency code of the currency String
    name The name of the currency String
    symbol The symbol for the currency String
    format The format string for displaying the currency String
    decimals The number of decimal places to use for the currency Integer

DeleteCurrency

DELETE /v1/currencies/{Code}

Deletes the specified currency..

Parameters
Name Description Type
Query Parameters
code The code of the currency to delete String

CreateAccountingRate

POST /v1/currencies/{Code}/accounting_rate

Creates a new accounting rate..

Parameters
Name Description Type
Query Parameters
code The code of the currency to create rate for String
Request Body (AccountingRate)
Name Description Type
rate_id The ID of the accounting rate String
rate The rate used for accounting conversions String
from_currency The currency code of the currency used in the organization String
to_currency The foreign currency code String
start_time The time the rate becomes valid Timestamp
end_time The time the rate becomes invalid Timestamp
  • Name Description Type
    rate_id The ID of the accounting rate String
    rate The rate used for accounting conversions String
    from_currency The currency code of the currency used in the organization String
    to_currency The foreign currency code String
    start_time The time the rate becomes valid Timestamp
    end_time The time the rate becomes invalid Timestamp

ListAccountingRates

GET /v1/currencies/{Code}/accounting_rate

Lists accounting rates..

Parameters
Name Description Type
Query Parameters
code The code of the currency to list rates for String
page_token The pagination token String
page_size The number of results per page Integer
order_by The field to order by String
filter The filter to apply to the results String
  • Name Description Type
    total The total number of rates matching the filter Integer
    remaining The number of rates remaining in the list, including the rates in the response Integer
    rates The list of accounting rates Array[AccountingRate]
    next_page_token The pagination token for the next page String

GetAccountingRate

GET /v1/currencies/{Code}/accounting_rate/{RateID}

Returns the accounting rates for the given currency..

Parameters
Name Description Type
Query Parameters
code The code of the currency to retrieve the rate for String
rate_id The ID of the accounting rate String
  • Name Description Type
    rate_id The ID of the accounting rate String
    rate The rate used for accounting conversions String
    from_currency The currency code of the currency used in the organization String
    to_currency The foreign currency code String
    start_time The time the rate becomes valid Timestamp
    end_time The time the rate becomes invalid Timestamp

CreateExchangeRate

POST /v1/currencies/{Code}/exchange_rate

Creates a new exchange rate..

Parameters
Name Description Type
Query Parameters
code The code of the currency to create rate for String
Request Body (ExchangeRate)
Name Description Type
rate_id The ID of the exchange rate String
buy_rate The buying rate for the exchange rate Float(64)
sell_rate The selling rate for the exchange rate Float(64)
from_currency The currency code of the currency used in the organization String
to_currency The foreign currency code String
start_time The time the rate becomes valid Timestamp
end_time The time the rate becomes invalid Timestamp
  • Name Description Type
    rate_id The ID of the exchange rate String
    buy_rate The buying rate for the exchange rate Float(64)
    sell_rate The selling rate for the exchange rate Float(64)
    from_currency The currency code of the currency used in the organization String
    to_currency The foreign currency code String
    start_time The time the rate becomes valid Timestamp
    end_time The time the rate becomes invalid Timestamp

ListExchangeRates

GET /v1/currencies/{Code}/exchange_rate

Lists exchange rates..

Parameters
Name Description Type
Query Parameters
code The code of the currency to list rates for String
page_token The pagination token String
page_size The number of results per page Integer
order_by The field to order by String
filter The filter to apply to the results String
  • Name Description Type
    total The total number of rates matching the filter Integer
    remaining The number of rates remaining in the list, including the rates in the response Integer
    rates The list of exchange rates Array[ExchangeRate]
    next_page_token The pagination token for the next page String

GetExchangeRate

GET /v1/currencies/{Code}/exchange_rate/{RateID}

Returns the exchange rates for the given currency..

Parameters
Name Description Type
Query Parameters
code The code of the currency to retrieve the rate for String
rate_id The ID of the exchange rate String
  • Name Description Type
    rate_id The ID of the exchange rate String
    buy_rate The buying rate for the exchange rate Float(64)
    sell_rate The selling rate for the exchange rate Float(64)
    from_currency The currency code of the currency used in the organization String
    to_currency The foreign currency code String
    start_time The time the rate becomes valid Timestamp
    end_time The time the rate becomes invalid Timestamp

RATES

Package rates manages index rate (sources) to reflect real-world rates. https://support.mambu.com/docs/customizing-index-rates FIXME: AKA FeeTables

CreateSource

POST /v1/sources

Creates a new index rate source..

Request Body (Source)
Name Description Type
source_id An unique ID of the index rate source String
name The name of the index rate source String
type The type of the index rate source SourceType
notes Custom text associated with the index rate source String
  • Name Description Type
    source_id An unique ID of the index rate source String
    name The name of the index rate source String
    type The type of the index rate source SourceType
    notes Custom text associated with the index rate source String

ListSources

GET /v1/sources

Lists index rate sources..

Parameters
Name Description Type
Query Parameters
page_token The token of the page to be returned String
page_size The number of index rate sources per page Integer
order_by The field to order the index rate sources by String
filter The filter to apply to the index rate sources String
  • Name Description Type
    total The total number of rates matching the filter Integer
    remaining The number of rates remaining in the list, including the rates in the response Integer
    sources The list of index rate sources Array[Source]
    next_page_token The token of the next page String

GetSource

GET /v1/sources/{SourceID}

Retrieves the specified index rate source..

Parameters
Name Description Type
Query Parameters
source_id The ID of the index rate sources to retrieve String
  • Name Description Type
    source_id An unique ID of the index rate source String
    name The name of the index rate source String
    type The type of the index rate source SourceType
    notes Custom text associated with the index rate source String

UpdateSource

PUT /v1/sources/{SourceID}

Updates the specified index rate source..

Parameters
Name Description Type
Query Parameters
source_id The ID of the source to update String
Request Body (Source)
Name Description Type
source_id An unique ID of the index rate source String
name The name of the index rate source String
type The type of the index rate source SourceType
notes Custom text associated with the index rate source String
  • Name Description Type
    source_id An unique ID of the index rate source String
    name The name of the index rate source String
    type The type of the index rate source SourceType
    notes Custom text associated with the index rate source String

DeleteSource

DELETE /v1/sources/{SourceID}

Deletes the specified index rate source..

Parameters
Name Description Type
Query Parameters
source_id The ID of the source to delete String

CreateIndexRate

POST /v1/sources/{SourceID}/indexrates

Creates a new index rate..

Parameters
Name Description Type
Query Parameters
source_id The ID of the source the new index rate should associate with String
Request Body (IndexRate)
Name Description Type
rate_id The ID of the index rate String
source_id The ID of the index rate's source String
user_id The ID of the user associated String
rate The index rate value Float(64)
notes The notes for the index rate String
start_time The time the source becomes active Timestamp
  • Name Description Type
    rate_id The ID of the index rate String
    source_id The ID of the index rate's source String
    user_id The ID of the user associated String
    rate The index rate value Float(64)
    notes The notes for the index rate String
    start_time The time the source becomes active Timestamp

ListIndexRates

GET /v1/sources/{SourceID}/indexrates

Lists index rates..

Parameters
Name Description Type
Query Parameters
source_id The ID of the source to list String
page_token The token of the page to be returned String
page_size The number of index rates per page Integer
order_by The field to order the index rates by String
filter The filter to apply to the index rates String
  • Name Description Type
    total The total number of rates matching the filter Integer
    remaining The number of rates remaining in the list, including the rates in the response Integer
    rates The list of index rates Array[IndexRate]
    next_page_token The token of the next page String

GetIndexRate

GET /v1/sources/{SourceID}/indexrates/{RateID}

Retrieves the specified index rate..

Parameters
Name Description Type
Query Parameters
source_id The ID of the source of the rate String
rate_id The ID of the index rate to retrieve String
  • Name Description Type
    rate_id The ID of the index rate String
    source_id The ID of the index rate's source String
    user_id The ID of the user associated String
    rate The index rate value Float(64)
    notes The notes for the index rate String
    start_time The time the source becomes active Timestamp

UpdateIndexRate

PUT /v1/sources/{SourceID}/indexrates/{RateID}

Updates the specified index rate..

Parameters
Name Description Type
Query Parameters
source_id The ID the index rate is associated with String
rate_id The ID of the index rate to be deleted String
Request Body (IndexRate)
Name Description Type
rate_id The ID of the index rate String
source_id The ID of the index rate's source String
user_id The ID of the user associated String
rate The index rate value Float(64)
notes The notes for the index rate String
start_time The time the source becomes active Timestamp
  • Name Description Type
    rate_id The ID of the index rate String
    source_id The ID of the index rate's source String
    user_id The ID of the user associated String
    rate The index rate value Float(64)
    notes The notes for the index rate String
    start_time The time the source becomes active Timestamp

DeleteIndexRate

DELETE /v1/sources/{SourceID}/indexrates/{RateID}

Deletes the specified index rate..

Parameters
Name Description Type
Query Parameters
source_id The ID the index rate is associated with String
rate_id The ID of the index rate to be deleted String

Acceptor

The details and names of a card acceptor (merchant) in a transaction..

Name Description Type
name The name of the card acceptor String
m_c_c The Merchant Category Code of the card acceptor Integer
address The address of the card acceptor Address

Card

A card associated with an account (deposit/loan). It can be managed with the CardsService but can only be created or deleted with the respective AccountsService..

Name Description Type
card_id The ID of the card String
type The type of the card Type
account_id The ID of the account associated with the card String

Hold

A card authorization hold to a card token..

Name Description Type
hold_id The ID of the authorization hold String
account_id The ID of the account linked with the authorization hold String
advice True if the request should be accepted without balance validation Boolean
amount The amount of money to be held Amount
original_amount The original amount of money to be held Amount
card_acceptor The details of the card acceptor Acceptor
exchange_rate The exchange rate for the original currency Float(64)
card_id The ID of the card String
type The type of the card for the authorization hold Type
source The monetary source of the authorization hold HoldSource
status The status of the authorization hold HoldStatus
user_transaction_time The time at which the user made the authorization hold Timestamp

HoldAdjustment

The data to decrease/increase the amount of an authorization hold..

Name Description Type
adjustment_id The ID of the decrease/increase request String
advice True if the request should be accepted without balance validation Boolean
change The money to be subtracted/added to the authorization hold amount Amount

HoldConfig

A configuration for an authorization hold..

Name Description Type
merchant_code The code of the merchant to create a merchant authorization hold for String
duration The duration before the hold expires Duration
description The description of the authorization hold String

HoldSource

Where the authorization hold is issued from..

Name Description
CardSource
AccountSource

HoldStatus

The status of an authorization hold..

Name Description
HoldPending
HoldReversed
HoldSettled
HoldExpired

NewTransaction

Information for a new card transaction..

Name Description Type
transaction The transaction to create Transaction
first_repay_time The first time repayment should be done for a loan transaction Timestamp
increase_amount_if_needed A flag indicating that the loan account limit should be increased if the loan account had insufficient balances Boolean
transaction_channel_id The ID of the channel through which the payment is done String

Transaction

A transaction involving a card..

Name Description Type
transaction_id The ID of the transaction String
advice True if the request should be accepted without balance validation Boolean
amount The amount of money to to be withdrawn in the financial transaction Amount
acceptor The card acceptor processing the transaction Acceptor
card_id The ID of the card used to make the transaction String
authorization_id The ID of the authorization hold String
transaction_time The time of the transaction Timestamp

TransactionReversal

A struct containing information to reverse a card transaction..

Name Description Type
amount The amount to be credited to client from original transaction Amount
transaction_channel_id The ID of the channel through which the payment is done String

Type

The types of a card. TODO: Not well defined..

Name Description
Debit
Credit

AccountingRate

A currency to currency conversion rate. It is from the organization currency to a foreign currency..

Name Description Type
rate_id The ID of the accounting rate String
rate The rate used for accounting conversions String
from_currency The currency code of the currency used in the organization String
to_currency The foreign currency code String
start_time The time the rate becomes valid Timestamp
end_time The time the rate becomes invalid Timestamp

Currency

The information for a currency..

Name Description Type
code The ISO3 currency code of the currency String
name The name of the currency String
symbol The symbol for the currency String
format The format string for displaying the currency String
decimals The number of decimal places to use for the currency Integer

ExchangeRate

The exchange rate configuration..

Name Description Type
rate_id The ID of the exchange rate String
buy_rate The buying rate for the exchange rate Float(64)
sell_rate The selling rate for the exchange rate Float(64)
from_currency The currency code of the currency used in the organization String
to_currency The foreign currency code String
start_time The time the rate becomes valid Timestamp
end_time The time the rate becomes invalid Timestamp

IndexRate

An entry of an index rate with the time it becomes valid..

Name Description Type
rate_id The ID of the index rate String
source_id The ID of the index rate's source String
user_id The ID of the user associated String
rate The index rate value Float(64)
notes The notes for the index rate String
start_time The time the source becomes active Timestamp

Source

The source for dynamic interest rates. An example is EURIBOR..

Name Description Type
source_id An unique ID of the index rate source String
name The name of the index rate source String
type The type of the index rate source SourceType
notes Custom text associated with the index rate source String

SourceType

The type of an index rate source..

Name Description
InterestRate
TaxRate
WithholdingTaxRate
PrincipalTaxRate