showToc |
---|
true |
This document provides detailed information about the Central Ledger API. The Central Ledger API is a Mojaloop API enabling Hub Operators to manage admin processes around:
- creating/activating/deactivating participants in the Hub
- adding and updating participant endpoint information
- managing participant accounts, limits, and positions
- creating Hub accounts
- performing Funds In and Funds Out operations
- creating/updating/viewing settlement models
- retrieving transfer details
For background information about the participant and settlement model details that the Hub Operator can administer using the Central Ledger API, see section Basic concepts.
To provide context for the admin operations that the Central Ledger API enables, this section gives a brief definition of some basic concepts.
Either the Hub itself or a Digital Financial Service Provider (DFSP) that is a participant in a Mojaloop scheme.
The DFSP callback URL where the Hub routes API callbacks. The URL specified is the endpoint set up in the outbound API gateway.
Currently, only one type of limit is supported, it is called "Net Debit Cap (NDC)". In the future, it is possible to add support for further types of limits.
The Net Debit Cap represents the liquidity cover available for a specific account (the Position account). It is the total amount of good funds which the scheme attests are available to guarantee that a participant is able to settle the liabilities it incurs on the Position account as a consequence of transferring funds. This amount of good funds is represented as the balance of an account (the Settlement account), which is tied to the Position account by a settlement model. The source of the funds in this account can be either funds recorded by the scheme's administrators as having been deposited to or withdrawn from the Settlement account, or funds which are automatically credited to or debited from the account by the scheme if the account is the Settlement account for an immediate gross settlement model.
It should also be possible for a participant to specify that an amount, or a proportion, of the funds available in a Settlement account should be excluded from the Net Debit Cap calculation. In cases where a participant is a long-term net beneficiary of funds via settlement, or where participants keep extra funds in their Settlement account to cover periods when it may not be possible to deposit funds to those accounts, it may wish to exclude part of the balance of its Settlement account from use as cover for transfers.
Also called "ledger". The Hub maintains a number of internal accounts to keep track of the movement of money (both e-money and real money) between DFSPs.
The Position represents the net of:
- transfers on that account which have cleared but have not yet settled, and
- transfers on that account where:
- the DFSP is the debtor party, and
- the transfer has been accepted for processing by the Hub, but has not yet cleared.
The Position for a given account is always verifiably up to date.
When a transfer is requested, the Hub will check that the DFSP has liquidity cover available on that account to cover the amount of the transfer. If it does not, the transfer will be rejected.
We currently allow liabilities to the participant which have been created as a consequence of transfers on the account where the participant is the beneficiary to reduce the participant's Position as if the liabilities had already been settled.
Funds In and Funds Out operations are used to track (in the Hub accounts) money movements related to deposits and withdrawals, as well as settlements.
Funds In operations record either the deposit of money into a DFSP's settlement bank account or the settlement amount for a receiving DFSP.
Funds Out operations record either the withdrawal of money from a DFSP's settlement bank account or the settlement amount for a sending DFSP.
Refers to how settlement happens within a scheme. Settlement is the process of transferring funds from one DSFP to another, so that the payer's DFSP reimburses the payee's DFSP for funds given to the payee during a transaction. A settlement model specifies if participants settle with each other separately or settle with the scheme, whether transfers are settled one by one or as a batch, whether transfers are settled immediately or with a delay, and so on.
This section contains detailed information regarding the use of the application-level protocol HTTP in the API.
HTTP headers are generally described in RFC 7230. Any headers specific to the Central Ledger API will be standardised in the future.
The following HTTP methods, as defined in RFC 7231, are supported by the API:
GET
– The HTTP GET method is used from a client to retrieve information about a previously-created object on a server.POST
– The HTTP POST method is used from a client to request an object to be created on the server.PUT
– The HTTP PUT method is used from a client to request an object already existing on the server to be modified (to replace a representation of the target resource with the request payload).
NOTE: The
DELETE
method is not supported.
Table "HTTP response status codes" lists the HTTP response status codes that the API supports:
Status Code | Reason | Description |
---|---|---|
200 | OK | Standard response for a successful GET , PUT , or POST operation. The response will contain an entity corresponding to the requested resource. |
201 | Created | The POST request has been fulfilled, resulting in the creation of a new resource. The response will not contain an entity describing or containing the result of the action. |
202 | Accepted | The request has been accepted for processing, but the processing has not been completed. |
400 | Bad Request | The server could not understand the request due to invalid syntax. |
401 | Unauthorized | The request requires authentication in order to be processed. |
403 | Forbidden | The request was denied and will be denied in the future. |
404 | Not Found | The requested resource is not available at the moment. |
405 | Method Not Allowed | An unsupported HTTP method for the request was used. |
406 | Not Acceptable | The requested resource is capable of generating only content not acceptable according to the Accept headers sent in the request. |
500 | Internal Server Error | A generic error message, given when an unexpected condition was encountered and no more specific message is suitable. |
501 | Not Implemented | The server does not support the requested service. The client should not retry. |
503 | Service Unavailable | The server is currently unavailable to accept any new service requests. This should be a temporary state, and the client should retry within a reasonable time frame. |
This section introduces and details all services that the API supports for each resource and HTTP method.
On a high level, the API can be used to perform the following actions:
/participants
: View, create, update participant-related details, such as limit (Net Debit Cap), position, or endpoints configured./settlementModels
: View, create, update settlement-model-related details, such as granularity, delay, liquidity check, and so on./transactions
: View transaction details for a particular transfer.
Table "Supported API services" includes high-level descriptions of the services that the API provides. For more detailed information, see the sections that follow.
URI | HTTP method GET |
HTTP method PUT |
HTTP method POST |
HTTP method DELETE |
---|---|---|---|---|
/participants |
Get information about all participants | Not supported | Create participants in the Hub | Not supported |
/participants/limits |
View limits for all participants | Not supported | Not supported | Not supported |
/participants/{name} |
Get information about a particular participant | Update participant details (activate/deactivate a participant) | Not supported | Not supported |
/participants/{name}/endpoints |
View participant endpoints | Not supported | Add/Update participant endpoints | Not supported |
/participants/{name}/limits |
View participant limits | Adjust participant limits | Not supported | Not supported |
/participants/{name}/positions |
View participant positions | Not supported | Not supported | Not supported |
/participants/{name}/accounts |
View participant accounts and balances | Not supported | Create Hub accounts | Not supported |
/participants/{name}/accounts/{id} |
Not supported | Update participant accounts | Record Funds In or Out of participant account | Not supported |
/participants/{name}/accounts/{id}/transfers/{transferId} |
Not supported | Not supported | Record a Transfer as a Funds In or Out transaction for a participant account | Not supported |
/participants/{name}/initialPositionAndLimits |
Not supported | Not supported | Add initial participant limits and position | Not supported |
/settlementModels |
View all settlement models | Not supported | Create a settlement model | Not supported |
/settlementModels/{name} |
View settlement model by name | Update a settlement model (activate/deactivate a settlement model) | Not supported | Not supported |
/transactions/{id} |
Retrieve transaction details by transferId |
Not supported | Not supported | Not supported |
The services provided by the resource /participants
are primarily used by the Hub Operator for viewing, creating, and updating participant-related details, such as limit (Net Debit Cap), position, or endpoints configured.
Retrieves information about all participants.
curl 'http://<domain-where-hub-central-ledger-service-is-running>/participants'
NOTE: In the example below,
dev1-central-ledger.mojaloop.live
indicates where the Central Ledger service of the Mojaloop Hub is running. This detail will be different in your implementation.
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"name": "greenbankfsp",
"id": "dev1-central-ledger.mojaloop.live/participants/greenbankfsp",
"created": "\"2021-03-04T14:20:17.000Z\"",
"isActive": 1,
"links": {
"self": "dev1-central-ledger.mojaloop.live/participants/greenbankfsp"
},
"accounts": [
{
"id": 15,
"ledgerAccountType": "POSITION",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 16,
"ledgerAccountType": "SETTLEMENT",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 21,
"ledgerAccountType": "INTERCHANGE_FEE_SETTLEMENT",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
}
]
},
{
"name": "Hub",
"id": "dev1-central-ledger.mojaloop.live/participants/Hub",
"created": "\"2021-03-04T13:37:25.000Z\"",
"isActive": 1,
"links": {
"self": "dev1-central-ledger.mojaloop.live/participants/Hub"
},
"accounts": [
{
"id": 1,
"ledgerAccountType": "HUB_MULTILATERAL_SETTLEMENT",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 2,
"ledgerAccountType": "HUB_RECONCILIATION",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
}
]
}
]
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
id |
yes | String | The identifier of the participant in the form of a fully qualified domain name combined with the participant's fspId . |
created |
yes | DateTime | Date and time when the participant was created. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the participant is active. Possible values are 1 and 0 . |
links |
yes | Self | List of links for a Hypermedia-Driven RESTful Web Service. |
accounts |
yes | Accounts | The list of ledger accounts configured for the participant. |
Creates a participant in the Hub.
curl -X POST -H "Content-Type: application/json" \
-d '{"name": "payerfsp", "currency": "USD"}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
currency |
yes | CurrencyEnum | The currency that the participant will transact in. |
NOTE: In the example below,
dev1-central-ledger.mojaloop.live
indicates where the Central Ledger service of the Mojaloop Hub is running. This detail will be different in your implementation.
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "payerfsp",
"id": "dev1-central-ledger.mojaloop.live/participants/payerfsp",
"created": "\"2021-01-12T10:56:30.000Z\"",
"isActive": 0,
"links": {
"self": "dev1-central-ledger.mojaloop.live/participants/hub"
},
"accounts": [
{
"id": 30,
"ledgerAccountType": "POSITION",
"currency": "USD",
"isActive": 0,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 31,
"ledgerAccountType": "SETTLEMENT",
"currency": "USD",
"isActive": 0,
"createdDate": null,
"createdBy": "unknown"
}
]
}
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
id |
yes | String | The identifier of the participant in the form of a fully qualified domain name combined with the participant's fspId . |
created |
yes | DateTime | Date and time when the participant was created. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the participant is active. Possible values are 1 and 0 . |
links |
yes | Self | List of links for a Hypermedia-Driven RESTful Web Service. |
accounts |
yes | Accounts | The list of ledger accounts configured for the participant. |
Retrieves limits information for all participants.
Name | Required | Type | Description |
---|---|---|---|
currency |
no | CurrencyEnum | The currency of the limit. |
limit |
no | String | Limit type. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/participants/limits'
NOTE: In the example below,
dev1-central-ledger.mojaloop.live
indicates where the Central Ledger service of the Mojaloop Hub is running. This detail will be different in your implementation.
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"name": "payerfsp",
"currency": "USD",
"limit": {
"type": "NET_DEBIT_CAP",
"value": 10000,
"alarmPercentage": 10
}
},
{
"name": "payeefsp",
"currency": "USD",
"limit": {
"type": "NET_DEBIT_CAP",
"value": 10000,
"alarmPercentage": 10
}
}
]
Each limit in the returned list is applied to the specified participant name and currency in each object.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
currency |
yes | CurrencyEnum | The currency configured for the participant. |
limit |
yes | ParticipantLimit | The limit configured for the participant. |
Retrieves information about a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp'
NOTE: In the example below,
dev1-central-ledger.mojaloop.live
indicates where the Central Ledger service of the Mojaloop Hub is running. This detail will be different in your implementation.
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "payerfsp",
"id": "dev1-central-ledger.mojaloop.live/participants/payerfsp",
"created": "\"2021-03-04T13:42:02.000Z\"",
"isActive": 1,
"links": {
"self": "dev1-central-ledger.mojaloop.live/participants/payerfsp"
},
"accounts": [
{
"id": 3,
"ledgerAccountType": "POSITION",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 4,
"ledgerAccountType": "SETTLEMENT",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 24,
"ledgerAccountType": "INTERCHANGE_FEE_SETTLEMENT",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
}
]
}
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
id |
yes | String | The identifier of the participant in the form of a fully qualified domain name combined with the participant's fspId . |
created |
yes | DateTime | Date and time when the participant was created. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the participant is active. Possible values are 1 and 0 . |
links |
yes | Self | List of links for a Hypermedia-Driven RESTful Web Service. |
accounts |
yes | Accounts | The list of ledger accounts configured for the participant. |
Updates participant details (activates/deactivates a participant).
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl -X PUT -H "Content-Type: application/json" \
-d '{"isActive": true}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp
Name | Required | Type | Description |
---|---|---|---|
isActive |
yes | Boolean | A flag to indicate whether or not the participant is active. |
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "payerfsp",
"id": "dev1-central-ledger.mojaloop.live/participants/payerfsp",
"created": "\"2021-03-04T13:42:02.000Z\"",
"isActive": 1,
"links": {
"self": "dev1-central-ledger.mojaloop.live/participants/payerfsp"
},
"accounts": [
{
"id": 3,
"ledgerAccountType": "POSITION",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 4,
"ledgerAccountType": "SETTLEMENT",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
},
{
"id": 24,
"ledgerAccountType": "INTERCHANGE_FEE_SETTLEMENT",
"currency": "USD",
"isActive": 1,
"createdDate": null,
"createdBy": "unknown"
}
]
}
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
id |
yes | String | The identifier of the participant in the form of a fully qualified domain name combined with the participant's fspId . |
created |
yes | DateTime | Date and time when the participant was created. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the participant is active. Possible values are 1 and 0 . |
links |
yes | Self | List of links for a Hypermedia-Driven RESTful Web Service. |
accounts |
yes | Accounts | The list of ledger accounts configured for the participant. |
Retrieves information about the endpoints configured for a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/endpoints'
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"type": "FSPIOP_CALLBACK_URL_PARTICIPANT_SUB_ID_PUT",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/participants/{{partyIdType}}/{{partyIdentifier}}/{{partySubIdOrType}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTICIPANT_SUB_ID_PUT_ERROR",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/participants/{{partyIdType}}/{{partyIdentifier}}/{{partySubIdOrType}}/error"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTICIPANT_SUB_ID_DELETE",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/participants/{{partyIdType}}/{{partyIdentifier}}/{{partySubIdOrType}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTIES_SUB_ID_GET",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/parties/{{partyIdType}}/{{partyIdentifier}}/{{partySubIdOrType}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTIES_SUB_ID_PUT",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/parties/{{partyIdType}}/{{partyIdentifier}}/{{partySubIdOrType}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTIES_SUB_ID_PUT_ERROR",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/parties/{{partyIdType}}/{{partyIdentifier}}/{{partySubIdOrType}}/error"
},
{
"type": "FSPIOP_CALLBACK_URL_AUTHORIZATIONS",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTICIPANT_PUT",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/participants/{{partyIdType}}/{{partyIdentifier}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTICIPANT_PUT_ERROR",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/participants/{{partyIdType}}/{{partyIdentifier}}/error"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTICIPANT_BATCH_PUT",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/participants/{{requestId}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTICIPANT_BATCH_PUT_ERROR",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/participants/{{requestId}}/error"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTIES_GET",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/parties/{{partyIdType}}/{{partyIdentifier}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTIES_PUT",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/parties/{{partyIdType}}/{{partyIdentifier}}"
},
{
"type": "FSPIOP_CALLBACK_URL_PARTIES_PUT_ERROR",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/parties/{{partyIdType}}/{{partyIdentifier}}/error"
},
{
"type": "FSPIOP_CALLBACK_URL_QUOTES",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000"
},
{
"type": "FSPIOP_CALLBACK_URL_TRX_REQ_SERVICE",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000"
},
{
"type": "FSPIOP_CALLBACK_URL_TRANSFER_POST",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/transfers"
},
{
"type": "FSPIOP_CALLBACK_URL_TRANSFER_PUT",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/transfers/{{transferId}}"
},
{
"type": "FSPIOP_CALLBACK_URL_TRANSFER_ERROR",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/transfers/{{transferId}}/error"
},
{
"type": "FSPIOP_CALLBACK_URL_BULK_TRANSFER_POST",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/bulkTransfers"
},
{
"type": "FSPIOP_CALLBACK_URL_BULK_TRANSFER_PUT",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/bulkTransfers/{{id}}"
},
{
"type": "FSPIOP_CALLBACK_URL_BULK_TRANSFER_ERROR",
"value": "http://dev1-sim-payerfsp-scheme-adapter:4000/bulkTransfers/{{id}}/error"
},
{
"type": "NET_DEBIT_CAP_THRESHOLD_BREACH_EMAIL",
"value": "[email protected]"
},
{
"type": "NET_DEBIT_CAP_ADJUSTMENT_EMAIL",
"value": "[email protected]"
},
{
"type": "SETTLEMENT_TRANSFER_POSITION_CHANGE_EMAIL",
"value": "[email protected]"
}
]
Name | Required | Type | Description |
---|---|---|---|
type |
yes | String | Type of endpoint. |
value |
yes | String | Endpoint value. |
Adds/updates endpoints for a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl -X POST -H "Content-Type: application/json" \
-d '{"type": "NET_DEBIT_CAP_ADJUSTMENT_EMAIL", "value": "[email protected]"}'
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/endpoints
Name | Required | Type | Description |
---|---|---|---|
type |
yes | String | Type of endpoint. |
value |
yes | String | Endpoint value. |
HTTP/1.1 201 Created
Content-Type: application/json
Retrieves limits information for a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
Name | Required | Type | Description |
---|---|---|---|
currency |
no | CurrencyEnum | The currency of the limit. |
limit |
no | String | Limit type. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/limits'
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"currency": "USD",
"limit": {
"type": "NET_DEBIT_CAP",
"value": 10000,
"alarmPercentage": 10
}
}
]
Each limit in the returned list is applied to the specified participant name and currency in each object.
Name | Required | Type | Description |
---|---|---|---|
currency |
yes | CurrencyEnum | The currency configured for the participant. |
limit |
yes | ParticipantLimit | The limit configured for the participant. |
Adjusts limits for a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl -X PUT -H "Content-Type: application/json" \
-d '{ \
"currency": "USD", \
"limit": { \
"type": NET_DEBIT_CAP", \
"value": 10000, \
"alarmPercentage": 20
} \
}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/limits
Name | Required | Type | Description |
---|---|---|---|
currency |
yes | CurrencyEnum | The currency configured for the participant. |
limit |
yes | ParticipantLimit | The limit configured for the participant. |
HTTP/1.1 200 OK
Content-Type: application/json
{
"currency": "USD",
"limit": {
"type": "NET_DEBIT_CAP",
"value": 10000,
"alarmPercentage": 20
}
}
Name | Required | Type | Description |
---|---|---|---|
currency |
yes | CurrencyEnum | The currency configured for the participant. |
limit |
yes | ParticipantLimit | The limit configured for the participant. |
Retrieves the position of a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
Name | Required | Type | Description |
---|---|---|---|
currency |
no | CurrencyEnum | The currency of the limit. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/positions'
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"currency": "USD",
"value": 150,
"changedDate": "2021-05-10T08:01:38.000Z"
}
]
Name | Required | Type | Description |
---|---|---|---|
currency |
yes | CurrencyEnum | The currency configured for the participant. |
value |
yes | Number | Position value. |
changedDate |
yes | DateTime | Date and time when the position last changed. |
Retrieves the accounts and balances of a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/accounts'
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": 3,
"ledgerAccountType": "POSITION",
"currency": "USD",
"isActive": 1,
"value": 150,
"reservedValue": 0,
"changedDate": "2021-05-10T08:01:38.000Z"
},
{
"id": 4,
"ledgerAccountType": "SETTLEMENT",
"currency": "USD",
"isActive": 1,
"value": -165000,
"reservedValue": 0,
"changedDate": "2021-05-10T14:27:02.000Z"
},
{
"id": 24,
"ledgerAccountType": "INTERCHANGE_FEE_SETTLEMENT",
"currency": "USD",
"isActive": 1,
"value": 0,
"reservedValue": 0,
"changedDate": "2021-03-30T12:23:06.000Z"
}
]
Name | Required | Type | Description |
---|---|---|---|
id |
yes | Integer | Identifier of the ledger account. |
ledgerAccountType |
yes | String | Type of ledger account. |
currency |
yes | CurrencyEnum | The currency of the ledger account. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the ledger account is active. Possible values are 1 and 0 . |
value |
yes | Number | Account balance value. |
reservedValue |
yes | Number | Value reserved in the account. |
changedDate |
yes | DateTime | Date and time when the ledger account last changed. |
Creates accounts in the Hub.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl -X POST -H "Content-Type: application/json" \
-d '{"currency": "USD", "type": "HUB_MULTILATERAL_SETTLEMENT"}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/accounts
Name | Required | Type | Description |
---|---|---|---|
currency |
yes | CurrencyEnum | The currency of the participant ledger account. |
type |
yes | String | Type of ledger account. |
HTTP/1.1 200 OK
Content-Type: application/json
{
"name": "hub",
"id": "dev1-central-ledger.mojaloop.live/participants/hub",
"created": "2021-01-12T10:56:30.000Z",
"isActive": 0,
"links": {
"self": "dev1-central-ledger.mojaloop.live/participants/hub"
},
"accounts": [
{
"id": 1,
"ledgerAccountType": "HUB_MULTILATERAL_SETTLEMENT",
"currency": "USD",
"isActive": 0,
"createdDate": "2021-01-12T10:56:30.000Z",
"createdBy": "unknown"
}
]
}
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String | The name of the participant. |
id |
yes | String | The identifier of the participant in the form of a fully qualified domain name combined with the participant's fspId . |
created |
yes | DateTime | Date and time when the participant was created. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the participant is active. Possible values are 1 and 0 . |
links |
yes | Self | List of links for a Hypermedia-Driven RESTful Web Service. |
accounts |
yes | Accounts | The list of ledger accounts configured for the participant. |
Records Funds In or Out of a participant account.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
id |
yes | Integer | Account identifier. |
curl -X POST -H "Content-Type: application/json" \
-d '{ \
"transferId": "bfd38d14-893f-469d-a6ca-a312a0223949", \
"externalReference": "660616", \
"action": "recordFundsIn", \
"reason": "settlement", \
"amount": { \
"amount": "5000", \
"currency": "USD" \
}, \
"extensionList": { \
"extension": [ \
{ \
"key": "scheme", \
"value": "abc" \
} \
] \
} \
}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/accounts/2
Name | Required | Type | Description |
---|---|---|---|
transferId |
yes | UUID | Transfer identifier. |
externalReference |
yes | String | Reference to any external data, such as an identifier from the settlement bank. |
action |
yes | Enum | The action performed on the funds. Possible values are: recordFundsIn and recordFundsOutPrepareReserve . |
reason |
yes | String | The reason for the FundsIn or FundsOut action. |
amount |
yes | Money | The FundsIn or FundsOut amount. |
extensionList |
no | ExtensionList | Additional details. |
HTTP/1.1 202 Accepted
Updates a participant account. Currently, updating only the isActive
flag is supported.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
id |
yes | Integer | Account identifier. |
curl -X PUT -H "Content-Type: application/json" \
-d '{"isActive": true}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/account/2
Name | Required | Type | Description |
---|---|---|---|
isActive |
yes | Boolean | A flag to indicate whether or not the participant account is active. |
HTTP/1.1 200 OK
Records a transfer as a Funds In or Out transaction for a participant account.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
id |
yes | Integer | Account identifier. |
transferId |
yes | UUID | Transfer identifier. |
curl -X PUT -H "Content-Type: application/json" \
-d '{"action": "recordFundsOutCommit", "reason": "fix"}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/account/2/transfers/bfd38d14-893f-469d-a6ca-a312a0223949
Name | Required | Type | Description |
---|---|---|---|
action |
yes | Enum | The FundsOut action performed. Possible values are: recordFundsOutCommit and recordFundsOutAbort . |
reason |
yes | String | The reason for the FundsOut action. |
HTTP/1.1 202 Accepted
Adds initial limits and a position for a particular participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String(2..30) | The name of the participant. |
curl -X POST -H "Content-Type: application/json" \
-d '{ \
"currency": "USD", \
"limit": { \
"type": "NET_DEBIT_CAP", \
"value": "10000" \
}, \
"initialPosition": 0 \
}' \
http://<domain-where-hub-central-ledger-service-is-running>/participants/payerfsp/initialPositionAndLimits
Name | Required | Type | Description |
---|---|---|---|
currency |
yes | CurrencyEnum | The currency of the participant. |
limit |
yes | ParticipantLimit | The limit configured for the participant. |
initialPosition |
no | Number | Initial Position. |
HTTP/1.1 201 Created
The services provided by the resource /settlementModels
are used by the Hub Operator for creating, updating, and viewing settlement models.
Retrieves information about all settlement models.
curl 'http://<domain-where-hub-central-ledger-service-is-running>/settlementModels'
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"settlementModelId": 1,
"name": "DEFERREDNETUSD",
"isActive": true,
"settlementGranularity": "NET",
"settlementInterchange": "MULTILATERAL",
"settlementDelay": "DEFERRED",
"currency": "USD",
"requireLiquidityCheck": true,
"ledgerAccountTypeId": "POSITION",
"autoPositionReset": true
},
{
"settlementModelId": 4,
"name": "DEFERREDNETEUR",
"isActive": true,
"settlementGranularity": "NET",
"settlementInterchange": "MULTILATERAL",
"settlementDelay": "DEFERRED",
"currency": "EUR",
"requireLiquidityCheck": true,
"ledgerAccountTypeId": "SETTLEMENT",
"autoPositionReset": true
}
]
Name | Required | Type | Description |
---|---|---|---|
settlementModelId |
yes | Integer | Settlement model identifier. |
name |
yes | String | Settlement model name. |
isActive |
yes | Boolean | A flag to indicate whether or not the settlement model is active. |
settlementGranularity |
yes | String | Specifies whether transfers are settled one by one or as a batch. Possible values are: GROSS : Settlement is executed after each transfer is completed, that is, there is a settlement transaction that corresponds to every transaction. NET : A group of transfers is settled together in a single settlement transaction, with each participant settling the net of all transfers over a given period of time. |
settlementInterchange |
yes | String | Specifies the type of settlement arrangement between parties. Possible values are: BILATERAL : Each participant settles its obligations with each other separately, and the scheme is not a party to the settlement. MULTILATERAL : Each participant settles with the scheme for the net of its obligations, rather than settling separately with each other party. |
settlementDelay |
yes | String | Specifies if settlement happens immediately after a transfer has completed or with a delay. Possible values are: IMMEDIATE : Settlement happens immediately after a transfer has completed. DEFERRED : Settlement is managed by the Hub operator on-demand or via a schedule. |
currency |
yes | CurrencyEnum | The currency configured for the settlement model. |
requireLiquidityCheck |
yes | Boolean | A flag to indicate whether or not the settlement model requires liquidity check. |
ledgerAccountTypeId |
yes | String | Type of ledger account. Possible values are: INTERCHANGE_FEE : Tracks the interchange fees charged for transfers. POSITION : Tracks how much a DFSP owes or is owed. SETTLEMENT : The DFSP's Settlement Bank Account mirrored in the Hub. Acts as a reconciliation account and mirrors the movement of real funds. |
autoPositionReset |
yes | Boolean | A flag to indicate whether or not the settlement model requires the automatic reset of the position. |
Creates a settlement model.
curl -X POST -H "Content-Type: application/json" \
-d '{ \
"name": "DEFERREDNET", \
"settlementGranularity": "NET", \
"settlementInterchange": "MULTILATERAL", \
"settlementDelay": "DEFERRED", \
"requireLiquidityCheck": true, \
"ledgerAccountType": "POSITION", \
"autoPositionReset": true \
}' \
http://<domain-where-hub-central-ledger-service-is-running>/settlementModels
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String | Settlement model name. |
settlementGranularity |
yes | String | Specifies whether transfers are settled one by one or as a batch. Possible values are: GROSS : Settlement is executed after each transfer is completed, that is, there is a settlement transaction that corresponds to every transaction. NET : A group of transfers is settled together in a single settlement transaction, with each participant settling the net of all transfers over a given period of time. |
settlementInterchange |
yes | String | Specifies the type of settlement arrangement between parties. Possible values are: BILATERAL : Each participant settles its obligations with each other separately, and the scheme is not a party to the settlement. MULTILATERAL : Each participant settles with the scheme for the net of its obligations, rather than settling separately with each other party. |
settlementDelay |
yes | String | Specifies if settlement happens immediately after a transfer has completed or with a delay. Possible values are: IMMEDIATE : Settlement happens immediately after a transfer has completed. DEFERRED : Settlement is managed by the Hub operator on-demand or via a schedule. |
currency |
yes | CurrencyEnum | The currency configured for the settlement model. |
requireLiquidityCheck |
yes | Boolean | A flag to indicate whether or not the settlement model requires liquidity check. |
ledgerAccountTypeId |
yes | String | Type of ledger account. Possible values are: INTERCHANGE_FEE : Tracks the interchange fees charged for transfers. POSITION : Tracks how much a DFSP owes or is owed. SETTLEMENT : The DFSP's Settlement Bank Account mirrored in the Hub. Acts as a reconciliation account and mirrors the movement of real funds. |
settlementAccountType |
yes | String | A special type of ledger account into which settlements should be settled. Possible values are: SETTLEMENT : A settlement account for the principal value of transfers (that is, the amount of money that the Payer wants the Payee to receive). INTERCHANGE_FEE_SETTLEMENT : A settlement account for the fees associated with transfers. |
autoPositionReset |
yes | Boolean | A flag to indicate whether or not the settlement model requires the automatic reset of the position. |
HTTP/1.1 201 Created
Retrieves information about a particular settlement model.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String | The name of the settlement model. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/settlementModels/DEFERREDNET'
HTTP/1.1 200 OK
Content-Type: application/json
{
"settlementModelId": 1,
"name": "DEFERREDNET",
"isActive": true,
"settlementGranularity": "NET",
"settlementInterchange": "MULTILATERAL",
"settlementDelay": "DEFERRED",
"currency": "USD",
"requireLiquidityCheck": true,
"ledgerAccountTypeId": "POSITION",
"autoPositionReset": true
}
Name | Required | Type | Description |
---|---|---|---|
settlementModelId |
yes | Integer | Settlement model identifier. |
name |
yes | String | Settlement model name. |
isActive |
yes | Boolean | A flag to indicate whether or not the settlement model is active. |
settlementGranularity |
yes | String | Specifies whether transfers are settled one by one or as a batch. Possible values are: GROSS : Settlement is executed after each transfer is completed, that is, there is a settlement transaction that corresponds to every transaction. NET : A group of transfers is settled together in a single settlement transaction, with each participant settling the net of all transfers over a given period of time. |
settlementInterchange |
yes | String | Specifies the type of settlement arrangement between parties. Possible values are: BILATERAL : Each participant settles its obligations with each other separately, and the scheme is not a party to the settlement. MULTILATERAL : Each participant settles with the scheme for the net of its obligations, rather than settling separately with each other party. |
settlementDelay |
yes | String | Specifies if settlement happens immediately after a transfer has completed or with a delay. Possible values are: IMMEDIATE : Settlement happens immediately after a transfer has completed. DEFERRED : Settlement is managed by the Hub operator on-demand or via a schedule. |
currency |
yes | CurrencyEnum | The currency configured for the settlement model. |
requireLiquidityCheck |
yes | Boolean | A flag to indicate whether or not the settlement model requires liquidity check. |
ledgerAccountTypeId |
yes | String | Type of ledger account. Possible values are: INTERCHANGE_FEE : Tracks the interchange fees charged for transfers. POSITION : Tracks how much a DFSP owes or is owed. SETTLEMENT : The DFSP's Settlement Bank Account mirrored in the Hub. Acts as a reconciliation account and mirrors the movement of real funds. |
autoPositionReset |
yes | Boolean | A flag to indicate whether or not the settlement model requires the automatic reset of the position. |
Updates a settlement model (activates/deactivates a settlement model).
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String | The name of the settlement model. |
curl -X PUT -H "Content-Type: application/json" \
-d '{"isActive": true}' \
http://<domain-where-hub-central-ledger-service-is-running>/settlementModels/DEFERREDNET
Name | Required | Type | Description |
---|---|---|---|
isActive |
yes | Boolean | A flag to indicate whether or not the settlement model is active. |
HTTP/1.1 200 OK
Content-Type: application/json
{
"settlementModelId": 1,
"name": "DEFERREDNET",
"isActive": true,
"settlementGranularity": "NET",
"settlementInterchange": "MULTILATERAL",
"settlementDelay": "DEFERRED",
"currency": "USD",
"requireLiquidityCheck": true,
"ledgerAccountTypeId": "POSITION",
"autoPositionReset": true
}
Name | Required | Type | Description |
---|---|---|---|
settlementModelId |
yes | Integer | Settlement model identifier. |
name |
yes | String | Settlement model name. |
isActive |
yes | Boolean | A flag to indicate whether or not the settlement model is active. |
settlementGranularity |
yes | String | Specifies whether transfers are settled one by one or as a batch. Possible values are: GROSS : Settlement is executed after each transfer is completed, that is, there is a settlement transaction that corresponds to every transaction. NET : A group of transfers is settled together in a single settlement transaction, with each participant settling the net of all transfers over a given period of time. |
settlementInterchange |
yes | String | Specifies the type of settlement arrangement between parties. Possible values are: BILATERAL : Each participant settles its obligations with each other separately, and the scheme is not a party to the settlement. MULTILATERAL : Each participant settles with the scheme for the net of its obligations, rather than settling separately with each other party. |
settlementDelay |
yes | String | Specifies if settlement happens immediately after a transfer has completed or with a delay. Possible values are: IMMEDIATE : Settlement happens immediately after a transfer has completed. DEFERRED : Settlement is managed by the Hub operator on-demand or via a schedule. |
currency |
yes | CurrencyEnum | The currency configured for the settlement model. |
requireLiquidityCheck |
yes | Boolean | A flag to indicate whether or not the settlement model requires liquidity check. |
ledgerAccountTypeId |
yes | String | Type of ledger account. Possible values are: INTERCHANGE_FEE : Tracks the interchange fees charged for transfers. POSITION : Tracks how much a DFSP owes or is owed. SETTLEMENT : The DFSP's Settlement Bank Account mirrored in the Hub. Acts as a reconciliation account and mirrors the movement of real funds. |
autoPositionReset |
yes | Boolean | A flag to indicate whether or not the settlement model requires the automatic reset of the position. |
The services provided by the resource /transactions
are used by the Hub Operator for retrieving transfer details.
Retrieves information about a particular transaction.
Name | Required | Type | Description |
---|---|---|---|
id |
yes | UUID | Transfer identifier. |
curl 'http://<domain-where-hub-central-ledger-service-is-running>/transactions/85feac2f-39b2-491b-817e-4a03203d4f14'
HTTP/1.1 200 OK
Content-Type: application/json
{
"quoteId": "7c23e80c-d078-4077-8263-2c047876fcf6",
"transactionId": "85feac2f-39b2-491b-817e-4a03203d4f14",
"transactionRequestId": "a8323bc6-c228-4df2-ae82-e5a997baf898",
"payee": {
"partyIdInfo": {
"partyIdType": "MSISDN",
"partyIdentifier": "123456789",
"fspId": "MobileMoneyAbc"
},
"name": "John Doe",
"personalInfo": {
"complexName": {
"firstName": "John",
"middleName": "William",
"lastName": "Doe"
},
"dateOfBirth": "1966-06-16"
}
},
"payer": {
"partyIdInfo": {
"partyIdType": "MSISDN",
"partyIdentifier": "987654321",
"fspId": "MobileMoneyXyz"
},
"name": "Jane Doe",
"personalInfo": {
"complexName": {
"firstName": "Mary",
"middleName": "Jane",
"lastName": "Doe"
},
"dateOfBirth": "1975-05-15"
}
},
"amount": {
"currency": "USD",
"amount": "50"
},
"transactionType": {
"scenario": "DEPOSIT",
"initiator": "PAYER",
"initiatorType": "CONSUMER"
}
}
Name | Required | Type | Description |
---|---|---|---|
quoteId |
UUID | Quote identifier. | |
transactionId |
UUID | Transaction identifier. | |
transactionRequestId |
String | Identifies an optional previously-sent transaction request. | |
payee |
Party | Payee details. | |
payer |
Party | Payer details. | |
amount |
Money | Transaction amount. | |
transactionType |
TransactionType | Transaction details. | |
note |
String | A memo that will be attached to the transaction. | |
extensionList |
ExtensionList | Additional details. |
For details on the formats used for element data types used by the API, see section 7.1 Format Introduction in the Mojaloop FSPIOP API Definition.
This section defines element data types used by the API.
For details, see section 7.2.13 Amount in the Mojaloop FSPIOP API Definition.
A "true"
or "false"
value.
For details, see section 7.2.14 DateTime in the Mojaloop FSPIOP API Definition.
For details, see section 7.2.2 Enum in the Mojaloop FSPIOP API Definition.
For details, see section 7.2.5 Integer in the Mojaloop FSPIOP API Definition.
The API data type Number is a an arbitrary-precision, base-10 decimal number value.
For details, see section 7.2.1 String in the Mojaloop FSPIOP API Definition.
For details, see section 7.2.16 UUID in the Mojaloop FSPIOP API Definition.
This section defines element types used by the API.
Data model for the element IsActive.
Name | Required | Type | Description |
---|---|---|---|
isActive |
yes | Integer(1) | A flag to indicate whether or not a ledger account / participant is active. Possible values are 1 (active) and 0 (not active). |
Data model for the element IsActiveBoolean.
Name | Required | Type | Description |
---|---|---|---|
isActive |
yes | Boolean | A flag to indicate whether or not an account / participant / settlement model is active. |
For details, see section 7.3.9 Currency in the Mojaloop FSPIOP API Definition.
Data model for the element RequireLiquidityCheck.
Name | Required | Type | Description |
---|---|---|---|
requireLiquidityCheck |
yes | Boolean | A flag to indicate whether or not a settlement model requires liquidity check. |
Data model for the element Self.
Name | Required | Type | Description |
---|---|---|---|
self |
yes | String | Fully qualified domain name combined with the fspId of the participant. |
Data model for the element SettlementDelay.
Name | Required | Type | Description |
---|---|---|---|
settlementDelay |
yes | Enum of String | Specifies if settlement happens immediately after a transfer has completed or with a delay. Allowed values for the enumeration are: IMMEDIATE : Settlement happens immediately after a transfer has completed. DEFERRED : Settlement is managed by the Hub operator on-demand or via a schedule. |
Data model for the element SettlementGranularity.
Name | Required | Type | Description |
---|---|---|---|
settlementGranularity |
yes | Enum of String | Specifies whether transfers are settled one by one or as a batch. Allowed values for the enumeration are: GROSS : Settlement is executed after each transfer is completed, that is, there is a settlement transaction that corresponds to every transaction. NET : A group of transfers is settled together in a single settlement transaction, with each participant settling the net of all transfers over a given period of time. |
Data model for the element SettlementInterchange.
Name | Required | Type | Description |
---|---|---|---|
settlementInterchange |
yes | Enum of String | Specifies the type of settlement arrangement between parties. Allowed values for the enumeration are: BILATERAL : Each participant settles its obligations with each other separately, and the scheme is not a party to the settlement. MULTILATERAL : Each participant settles with the scheme for the net of its obligations, rather than settling separately with each other party. |
The list of ledger accounts configured for the participant. For details on the account object, see IndividualAccount.
For details, see section 7.4.2 ErrorInformation in the Mojaloop FSPIOP API Definition.
Data model for the complex type object that contains an optional element ErrorInformation used along with 4xx and 5xx responses.
For details, see section 7.4.3 Extension in the Mojaloop FSPIOP API Definition.
For details, see section 7.4.4 ExtensionList in the Mojaloop FSPIOP API Definition.
Data model for the complex type IndividualAccount.
Name | Required | Type | Description |
---|---|---|---|
id |
yes | Integer | Identifier of the ledger account. |
ledgerAccountType |
yes | String | Type of the ledger account (for example, POSITION). |
currency |
yes | CurrencyEnum | The currency of the account. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the ledger account is active. Possible values are 1 and 0 . |
createdDate |
yes | DateTime | Date and time when the ledger account was created. |
createdBy |
yes | String | The entity that created the ledger account. |
Data model for the complex type Limit.
Name | Required | Type | Description |
---|---|---|---|
type |
yes | String | Limit type. |
value |
yes | a positive Number | Limit value. |
For details, see section 7.4.10 Money in the Mojaloop FSPIOP API Definition.
Data model for the complex type Participant.
Name | Required | Type | Description |
---|---|---|---|
name |
yes | String | The name of the participant. |
id |
yes | String | The identifier of the participant in the form of a fully qualified domain name combined with the participant's fspId . |
created |
yes | DateTime | Date and time when the participant was created. |
isActive |
yes | Integer(1) | A flag to indicate whether or not the participant is active. Possible values are 1 and 0 . |
links |
yes | Self | List of links for a Hypermedia-Driven RESTful Web Service. |
accounts |
yes | Accounts | The list of ledger accounts configured for the participant. |
Data model for the complex type ParticipantFunds.
Name | Required | Type | Description |
---|---|---|---|
transferId |
yes | UUID | Transfer identifier. |
externalReference |
yes | String | Reference to any external data, such as an identifier from the settlement bank. |
action |
yes | Enum | The action performed on the funds. Possible values are: recordFundsIn and recordFundsOutPrepareReserve . |
reason |
yes | String | The reason for the FundsIn or FundsOut action. |
amount |
yes | Money | The FundsIn or FundsOut amount. |
extensionList |
no | ExtensionList | Additional details. |
Data model for the complex type ParticipantLimit.
Name | Required | Type | Description |
---|---|---|---|
type |
yes | String | The type of participant limit (for example, NET_DEBIT_CAP .) |
value |
yes | Number | The value of the limit that has been set for the participant. |
alarmPercentage |
yes | Number | An alarm notification is triggered when a pre-specified percentage of the limit is reached. Specifying an alarmPercentage is optional. If not specified, it will default to 10 percent, expressed as 10 . |
Data model for the complex type ParticipantsNameEndpointsObject.
Name | Required | Type | Description |
---|---|---|---|
type |
yes | String | The endpoint type. |
value |
yes | String | The endpoint value. |
Data model for the complex type ParticipantsNameLimitsObject.
Name | Required | Type | Description |
---|---|---|---|
currency |
yes | CurrencyEnum | The currency configured for the participant. |
limit |
yes | ParticipantLimit | The limit configured for the participant. |
For details, see section 7.4.11 Party in the Mojaloop FSPIOP API Definition.
For details, see section 7.4.12 PartyComplexName in the Mojaloop FSPIOP API Definition.
For details, see section 7.4.13 PartyIdInfo in the Mojaloop FSPIOP API Definition.
For details, see section 7.4.14 PartyPersonalInfo in the Mojaloop FSPIOP API Definition.
Data model for the complex type RecordFundsOut.
Name | Required | Type | Description |
---|---|---|---|
action |
yes | Enum | The FundsOut action performed. Possible values are: recordFundsOutCommit and recordFundsOutAbort . |
reason |
yes | String | The reason for the FundsOut action. |
Data model for the complex type Refund.
Name | Required | Type | Description |
---|---|---|---|
originalTransactionId |
yes | UUID | Reference to the original transaction id that is requested to be refunded. |
refundReason |
no | String(1-128) | Free text indicating the reason for the refund. |
Data model for the complex type SettlementModelsObject.
Name | Required | Type | Description |
---|---|---|---|
settlementModelId |
yes | Integer | Settlement model identifier. |
name |
yes | String | Settlement model name. |
isActive |
yes | Boolean | A flag to indicate whether or not the settlement model is active. |
settlementGranularity |
yes | String | Specifies whether transfers are settled one by one or as a batch. Possible values are: GROSS : Settlement is executed after each transfer is completed, that is, there is a settlement transaction that corresponds to every transaction. NET : A group of transfers is settled together in a single settlement transaction, with each participant settling the net of all transfers over a given period of time. |
settlementInterchange |
yes | String | Specifies the type of settlement arrangement between parties. Possible values are: BILATERAL : Each participant settles its obligations with each other separately, and the scheme is not a party to the settlement. MULTILATERAL : Each participant settles with the scheme for the net of its obligations, rather than settling separately with each other party. |
settlementDelay |
yes | String | Specifies if settlement happens immediately after a transfer has completed or with a delay. Possible values are: IMMEDIATE : Settlement happens immediately after a transfer has completed. DEFERRED : Settlement is managed by the Hub operator on-demand or via a schedule. |
currency |
yes | CurrencyEnum | The currency configured for the settlement model. |
requireLiquidityCheck |
yes | Boolean | A flag to indicate whether or not the settlement model requires liquidity check. |
ledgerAccountTypeId |
yes | String | Type of ledger account. Possible values are: INTERCHANGE_FEE : Tracks the interchange fees charged for transfers. POSITION : Tracks how much a DFSP owes or is owed. SETTLEMENT : The DFSP's Settlement Bank Account mirrored in the Hub. Acts as a reconciliation account and mirrors the movement of real funds. |
autoPositionReset |
yes | Boolean | A flag to indicate whether or not the settlement model requires the automatic reset of the position. |
For details, see section 7.4.18 TransactionType in the Mojaloop FSPIOP API Definition.