Deposit Paylet

What is a Deposit Transaction?

A Deposit is a transfer of funds from an External Instrument to a Managed Instrument, both owned by the same Corporate Identity instance.

To enable a deposit transaction, the owner of the external account will first need to define the bank account details in OPC (refer to the external account API methods).

Refer to the Deposit Swagger documentation for the complete list of APIs that may be invoked in relation to the deposit transaction.

Deposit Paylet API

URL Method Description
/deposits/get POST Retrieve a list of Deposit transactions for a Programme
/deposits/{id}/get POST Retrieve the detail of the Deposit specified in the request
/deposits/_/create_from_external_account POST Create a new deposit e.g. initiate the movement of funds from an external source to a managed account owned by the same corporate identity. Please note that in testing you need to have first called /payin\_simulator/payin before calling this method.
/deposits/profiles/get POST Retrieve a list of Profiles that can be used to perform a Deposit transaction
/deposits/profiles/{id}/get POST Retrieve details of the Profile specified in the request

Deposit Instance Attributes

Attribute Description
Id The ID for a Deposit transaction
Programme Id The Programme ID within which the Deposit is taking place
Profile Id The Profile that used to specify configuration of a Deposit
State Describes the current state of a Deposit transaction
Timestamp The date and time the Deposit transaction was initiated
Deposit currency The currency of the Deposit transaction
Deposit amount The value of the deposit. Please note that this is currently scaled to the lowest denomination of the currency e.g. to specify a deposit of 10 Euro, a value of 1000 would need to be entered
Source The source from where the Deposited funds originate (e.g. external instrument)
Destination The Managed Instrument the funds are to be deposited to
Failure Reason Indicates the failure reason for a failed Deposit transaction

Other Information:

In a live environment a Corporate user executes a transaction – through the Application. This returns a unique identifier (and destination bank account details) that is then quoted when the user is doing the bank transfer from his bank’s portal.

During development, we simulate this process through a two-step process:

  1. First, we simulate the ‘availability’ of funds in the external bank account. As you appreciate this is not applicable on a production system
  2. Second, we execute the actual deposit transaction (the one which we would have executed in a real-life scenario).

On a production environment it is expected that a Corporate user initiates a bank transfer directly from their own banking portal. To do so the user executes a Deposit transaction (returns details such as deposit reference that user has to quote when doing own bank transfer) ; once the funds are received the system automatically deposits the funds in the specified destination instrument. On a staging / test environment the Developer can simulate this process through a two-step process - first the payin method as provided in the Simulator is to be called to put funds on the External Account; subsequently the Create Deposit method is called to complete the transaction, passing the ID of the pay-in to be deposited.

Simulator Function

On a staging/test environment, a Developer can simulate a Deposit through the payin method:

Perform a Pay-in

This function increments an External Account’s balance, as specified.

To access this method, launch Swagger:

  • Locate:/payin_simulator/payin
  • Select ‘Try it out’
  • Specify the parameters as prompted, including the amount and currency of the pay-in
  • Select ‘send request’
  • To complete a pay-in, the /deposits/_/create_from_external_account now needs to be called