Sharable Cash

Transaction Templates

Transaction Templates are used to create Transactions within specific Applications.
Application is used to group one or more Transaction Templates. A Customer is generally attached to a Program, which may have one or more Applications. 

Get a Transaction Template

To get a Transaction Template to use, follow the next steps:

1. Get the list of Applications available for a specific Program:

GET /programs/{program_id}/applications

//Example response

{
 "paging": {
   "page_size": 50,
   "page_number": 1,
   "total_count": 1,
   "last_evaluated_key": null
 },
 "data": [
   {
     "application_id": "app_97lZr7G7efm2tW57",
     "application_name": "DirectSharingApplication",
     "application_display_name": "Direct Sharing Application",
     "application_description": "Enables moving funds directly between source and target Customers.",
     "created_by": "SYSTEM",
     "created_datetime": "2023-02-15T17:41:26.47",
     "modified_by": "SYSTEM",
     "modified_datetime": "2023-02-15T17:41:26.47"
   }
 ],
 "errors": null
}

2. Get the list of Transaction Templates available for a particular Application:

GET /applications/{application-id}/transaction-templates

//Example response

{
 "paging": {
   "page_size": 50,
   "page_number": 1,
   "total_count": 1,
   "last_evaluated_key": null
 },
 "data": [
   {
     "transaction_template_id": "trt_ffCHsIicGALMoUPF",
     "application_id": "app_97lZr7G7efm2tW57",
     "transaction_template_name": "DirectSharingTransactionTemplate",
     "transaction_template_display_name": "Direct Sharing Transaction Template",
     "transaction_template_description": "A Transaction Template for Direct Sharing Application",
     "created_by": "SYSTEM",
     "created_datetime": "2023-02-15T17:41:27.62",
     "modified_by": "SYSTEM",
     "modified_datetime": "2023-04-25T08:29:29.757"
   }
 ],
 "errors": null
}

Sharable Cash will define the list of Applications and Templates available for those Applications based on the Faciliator's requirements.

Transaction Templates Structure

Each Transaction Template has defined Steps (one Step or many).  

To check the Steps for a specific Transaction Template, use the following request:

GET /transaction-templates/{transaction_template_id}/transaction-template-steps

Transaction Template Steps have the following parameters:

Name

 

Definition

 

transaction_template_id

Unique identifier of the Template the Step belongs to.

transaction_template_step_id

Unique identifier of the Step.

transfer_type_id

It defines the nature of the Transfer. Use GET/dictionaries/transfer-types to define what a specific id means.

Ex., "transfer_type_id": 1, is  "ACH funding", which means “Payment from an external bank to an internal account.”

sequence

The order of execution of the Step in the Template. Ex., "sequence": 1, means that this is the first Step in the Template.

wait_to_complete

Possible values: True/False. "wait_to_complete": true, means that the next Step won’t be executed until this Step is not complete.

is_optional

Defines whether the Step is optional or may be skipped. Possible values: True/False. If “True”, we don't need parameters in the input.

Each step has a defined source and target destination for defined Customer Types.

customer_type_id

Identifies which Customer Types are allowed to be as a source or a target in this Step.

The id is predefined in the Dictionary:

GET /dictionaries/customer-types

Ex. "customer_type_id": [1, 2], means that Indivuduals and Organizations are Customer Types for a particular destination (source or target).

destination_id

Is predefined in the Dictionary:

GET /dictionaries/destinations

Ex. "destination_id": 1 means “Source“, and "destination_id": 2 - “Target“.

account_code_id

Is predefined in the Dictionary:

GET /dictionaries/account-codes

parameter_name

Maps input parameters to the source and target of the Step.

Ex.,@source_customers, @targets, @facilitator.

Transaction Type Parameters

The Transaction Type has its list of parameters:

Name

 

Definition

 

transfer_type_name

The name of the transfer type.

Note: Transfer Type defines the nature of the Transfer; ex., this may be “ACH Funding” used for funding a member account from a bank, or “ACH Withdrawal” for sending money to the member's bank account, or this may be “Internal Transfer“ for moving funds between Customers or sending an Admin portion to a Facilitator.

transfer_type_display_name

The display name of the Transfer type.

transfer_type_description

The description of the Transfer type.

cardinality_id

Defines number of transfers available within one Step. The id is defined in the Dictionary:

GET /dictionaries/cardinality

Ex. "cardinality_id": 1, means “Allow only one single Transfer within a step.“

source_object

Describes the source data.

orientation_id

Internal or external.

parameter_type_id

Transfer or check object - describes what fields are required in the parameters list that we give in the input.

The id is predefined in the Dictionary:

GET /dictionaries/parameter-types

payment_methods

Predefined in the Dictionary. Currently, available methods: ACH and Check.

GET /dictionaries/payment-methods

target_object

Describes the target data.

payment_methods

Defines available payment methods within a Transaction Type. The id is predefined in the Dictionary:

GET /dictionaries/payment-methods