Forte Settlement-Funding Simulation Using JSON files
This document covers the JSON file definition and the steps to use to simulate the Forte Settlement/Funding when the use of live bank and credit card accounts is not feasible. This is for TEST environments only and is not for use in a live SedonaOffice - Forte integrated environments. There is no update to the Test or Live Forte merchant.
There are three files used for the simulation: TestFundings.json, TestFundingSettlements_{value that matches TestFundings.json funding_id}.json and TestSettlements.json. The TestFundings.json is used to identify the sum of the results of the associated TestFundingSettlements and TestSettlements JSON file. TestFundingSettlements_{value that matches TestFundings.json}.json is used to identify the payment transactions to be included when the EFT Service runs. This file can include both ACH (Bank Account) and/or Credit Card transactions that have not been rejected. The TestSettlements JSON file is used to identify the rejected transactions.
At this time, only one rejected transaction can be processed.
This Settlement-Funding simulation is used to process EFT transactions created within SedonaOffice using Accounts Receivable > EFT Processing. Prior to processing EFT transactions, the user must have a valid EFT Setup (SedonaSetup > EFT Setup) using the information provided by Forte and must have valid bank and/or credit card accounts defined for those customers who will be paying via ACH or CC. The EFT process supports ACH (bank account) and Credit Cards for which the credit card type is defined in SedonaSetup > EFT Credit Card Types.
The batches created by the EFT Processing in SedonaOffice remain unchanged. Payment Processing Batches generated from the EFT Processing are created based on the transaction types; ACH or Credit Card. A separate credit batch is created for the credit card type AMEX with all other credit card types (Mastercard, VISA, etc) all included in the same batches. The batches are created for a single day. EFT entries made throughout the day are updated to the appropriate batch. The description of the batch is defined with (TestFundings.json location_id)_(Batch Type)YYYYMMDD [Example of credit card batch: 190283_CC20211030]. Batch Types: CC - credit card non-American Express, ACH (bank account), or AMEX (American Express).
Any transactions that are settled but have not been funded can be deposited from Accounts Receivable > Payment Processing. Transactions not yet settled cannot be deposited.
TestFundingSettlements_{value from TestFundings.json funding_id} .json
Example JSON file name: TestFundingSettlements_ACHD-1009-0C010.json.
The following values in the TestFundingSettlements JSON file need to be edited with the information from the SedonaOffice records to be processed via the EFT Service for each run.
- "number_results": {This is the number of records (results) to be included in the TestFundingSettlements JSON file.}
- "home_organization_id": {org_(AR_ACH_Direct.Organization_Id)}. The 'org_' prefix must proceed the organization id.
- "customer_token": {cst_(AR_ACH_Customer.Customer_Token)}. The 'cst_' prefix must proceed the customer token.
- "customer_id": {AR_Customer.Customer_Number}
- "reference_id": {AR_ACH. ACH_Id} - This value will be unique to identify the individual AR_ACH record to be included with the EFT Service Process.
- "transaction_id": {trn_(AR_ACH.Trace_Number)} - This is the AR_ACH.Trace_Number for the AR_ACH. ACH_Id defined.
- "settle_date": {"YYYY-MM-DDT00:00:00" format}
- "settle_type": "deposit" - The value must be "deposit" transactions that are to be settled.
- "settle_response_code": {if the method = "echeck" then value = "S01"; if the method = "cc" then this line is removed}
- "settle_amount": {AR_ACH.Amount} - This is the AR_ACH.amount for the AR_ACH. ACH_Id defined.
- "method": {if the payment method (AR_ACH.Credit_Card) = N, then the value entered should be "echeck". if the payment method (AR_ACH.Credit_Card) = Y, then the value entered should be "cc". The values are to be lowercase.
Example:
TestFundingSettlements_ACH-1009-0C001.json
{
"number_results": 1,
"search_criteria": {
"page_size": 50,
"page_index": 0,
"home_organization_id": "org_337862",
"resource_specific": {}
},
"results": [
{
"customer_token": "cst_pBf8zDWM7EitEIPneq5DFA",
"customer_id": "48026",
"reference_id": 3751",
"settle_id": "stl_e6abd8b6-5a9c-4326-8e5c-43d12afe00b8",
"transaction_id": "trn_5aa12ec3-5159-463f-9cd1-f8051fb3ad19",
"settle_batch_id": "",
"settle_date": "2021-10-09T00:00:00",
"settle_type": "deposit",
"settle_amount": 16.00,
"method": "cc"
}
],
"response": {
"response_desc": "Get Successful.",
"environment": "live",
"authorization_code": null,
"preauth_result": null,
"preauth_desc": null,
"preauth_neg_report": null,
"response_type": null,
"response_code": null,
"avs_result": null,
"cvv_result": null
},
"links": {
"self": "https://api.forte.net/v3/settlements/",
"transactions": null,
"settlements": null,
"schedules": null,
"documents": null
}
}
TestFundings.json
The following values in the TestFundings JSON file need to be edited with the information from the SedonaOffice records and information from the TestFundingSettlements JSON file to be processed via the EFT Service for each run.
- "number_results": {matches the value in TestFundingSettlements json "number_results"}
- "home_organization_id": {org_(AR_ACH_Direct.Organization_Id)}. The 'org_' prefix must proceed the organization id.
- "funding_id": {The value of the funding_id must be the same as the _value in the name of the TestFundingSettlement JSON file. Example: TestingFundingSettlements_ACHD-1009-0C001.json the TestFundings.json value would be "ACHD-1009-0C001"
- "organization_id": {org_(AR_ACH_Direct.Organization_Id)}. The 'org_' prefix must proceed the organization id.
- "location_id": {loc_(AR_ACH_Direct.Merchant_Id)}. The 'loc_' prefix must proceed the organization id.
- "effective_date": {"YYYY-MM-DDT00:00:00" format}
- "net_amount": {sum of "settle_amount" for all the "results" records in the TestFundingSettlement JSON file}
Example:
{
"number_results": 1,
"search_criteria": {
"page_size": 1000,
"page_index": 0,
"home_organization_id": "org_337862",
"resource_specific": {}
},
"results": [
{
"funding_id": "fnd_ACHD-1009-0C001",
"organization_id": "org_337862",
"location_id": "loc_190283",
"status": "completed",
"effective_date": "2021-10-07T00:00:00",
"net_amount": 16,
"funding_response_code": "S01"
},
],
"response": {
"response_desc": "Get Successful.",
"environment": "sandbox",
"authorization_code": null,
"preauth_result": null,
"preauth_desc": null,
"preauth_neg_report": null,
"response_type": null,
"response_code": null,
"avs_result": null,
"cvv_result": null
},
"links": {
"self": "https://api.forte.net/v3/fundings/?filter=start_effective_date+eq+%272021-07-22T12%3a00%27+and+end_effective_date+eq+%272021-07-27T12%3a00%27&page_size=1000&orderby=effective_date",
"transactions": null,
"settlements": null,
"schedules": null,
"documents": null
}
}
TestSettlements.json
The TestSettlements.json is for rejected transactions only. The following values in the TestSettlements JSON file need to be edited with the information from the SedonaOffice records to be processed via the EFT Service for each run. Upon successful EFT process, a 'Z' type transaction will be created for the rejected transaction and the rejected transaction will not be included in the funded batch.
Forte Rejection Codes:

- "number_results": {This is the number of records (results)} *Currently only one rejected record can be processed at a time.
- "home_organization_id": {org_(AR_ACH_Direct.Organization_Id)}. The 'org_' prefix must proceed the organization id.
- "customer_token": {cst_(AR_ACH_Customer.Customer_Token)}. The 'cst_' prefix must proceed the customer token.
- "customer_id": {AR_Customer.Customer_Number}
- "reference_id": {AR_ACH. ACH_Id} - This value will be unique to identify the individual AR_ACH record to be included with the EFT Service Process.
- "transaction_id": {trn_(AR_ACH.Trace_Number)} - This is the AR_ACH.Trace_Number for the AR_ACH. ACH_Id defined.
- "settle_date": {"YYYY-MM-DDT00:00:00" format}
- "settle_type": "reject" - The value must be "reject" for transactions that are to be rejected.
- "settle_response_code": {Forte Rejection Code}
- "settle_amount": {AR_ACH.Amount} - This is the AR_ACH.amount for the AR_ACH. ACH_Id defined.
- "method": {if the payment method (AR_ACH.Credit_Card) = N, then the value entered should be "echeck". if the payment method (AR_ACH.Credit_Card) = Y, then the value entered should be "cc". The values are to be lowercase.
Example:
{
"number_results": 1,
"search_criteria": {
"page_size": 50,
"page_index": 0,
"home_organization_id": "org_337862",
"resource_specific": {}
},
"results": [
{
"customer_token": "cst_pBf8zDWM7EitEIPneq5DFA",
"customer_id": "48026",
"reference_id": "3750",
"settle_id": "stl_e6abd8b6-5a9c-4326-8e5c-43d12afe00b8",
"transaction_id": "trn_283e91ce-52e8-47a3-b51a-cfc20f2d778f",
"settle_batch_id": "",
"settle_date": "2021-10-09T00:00:00",
"settle_type": "reject",
"settle_response_code": "R01",
"settle_amount": 15.00,
"method": "echeck"
}
],
"response": {
"response_desc": "Get Successful.",
"environment": "live",
"authorization_code": null,
"preauth_result": null,
"preauth_desc": null,
"preauth_neg_report": null,
"response_type": null,
"response_code": null,
"avs_result": null,
"cvv_result": null
},
"links": {
"self": "https://api.forte.net/v3/settlements/",
"transactions": null,
"settlements": null,
"schedules": null,
"documents": null
}
}
Directory for JSON files
The TestFunding, TestFundingSettlements, and TestSettlement JSON files must reside in the Windows/System32 directory only. If files of the same name reside in the Windows/SysWOW64 directory, then the EFT Service will not process the JSON files. Rename any all other TestFunding, TestFundingSettlements, and TestSettlement JSON files in any other directory to assure that the service uses the correct files.
SedonaEFTService.exe.config
The SedonaEFTService.exe.config contains <appSettings> where the times are defined in which the automatic process and reconciliation times are defined. The time defined for the appSetting "<add key="RECONCILIATION_TRANS_PROCESS_RUN_TIME_1" value="11:30 PM" />" is the default time in which the SedonaEFTService will run automatically. To run the SedonaEFTService on demand, the time value must be edited (an example editing program is Notepad++) for the desired time to run the service. The time must be (two digit hour):(two digit minutes). Example 5:35 AM would be defined as "05:35 AM".
<appSettings>
<add key="SUBMIT_TRANS_PROCESS_RUN_TIME_1" value="08:00 AM" />
<add key="SUBMIT_TRANS_PROCESS_RUN_TIME_2" value="12:00 PM" />
<add key="SUBMIT_TRANS_PROCESS_RUN_TIME_3" value="05:00 PM" />
<add key="RECONCILIATION_TRANS_PROCESS_RUN_TIME_1" value="05:35 AM" />
</appSettings>
After updating and saving the change to the time, the SedonaEFTService must be restarted. Therefore; you may want to set the time to 1-2 minutes from the current time to allow for restarting the service.
EFT Service:
When the EFT Service including the Settlement-Funding JSON files completes, then any successfully funded transactions are added to a Funded batch. The description of the funding batch is formatted as: (TestFundings.json location_id)_FND(TestFundings.json funding_id) [Example of funded batch: 190283_ACHD-1009-0C001].
If the EFT batch (ACH/CC/AMEX) does not contain any transactions that were previously settled, then a funded (FND) batch is created, the transaction from the EFT batch is moved from the EFT (ACH/CC/AMEX) batch into the funded (FND) batch. This process continues until all the transactions defined in the TestFundingSettlement JSON file are processed. If the TestFundingSettlement JSON file contains all the transactions in the EFT (ACH/CC/AMEX) batch or there are no remaining transactions in the EFT (ACH/CC/AMEX) batch, then the EFT (ACH/CC/AMEX) batch is removed.
If the EFT batch (ACH/CC/AMEX) contains any transactions that were previously settled, then a funded (FND) batch is only created if there are non-settled transactions being processed. The non-settled transactions from the EFT batch are moved from the EFT (ACH/CC/AMEX) batch into the funded (FND) batch. The previously settled transactions remain in the EFT (ACH/CC/AMEX) batch. If there are no remaining transactions in the EFT (ACH/CC/AMEX) batch, then the EFT (ACH/CC/AMEX) batch is removed. If the EFT (ACH/CC/AMEX) batch only contains settled transactions, then the batch can be deposited.
If there are rejected transactions in the TestSettlements.json, then the transaction identified remains in the EFT batch (ACH/CC/AMEX) and an additional batch with the description "Posting Z Transactions".
The funded batch is removed after the Deposit for the funded batch is created.
Other Resources
This document is NOT complete.