Merchant Boarding File Upload Process
Introduction
The Merchant Boarding Web Service offers the ability to board your merchants through an XML/JSON formatted file. In this guide we will show you how to upload a merchant file.
Getting Started
Tasks covered in this guide
- Authenticate and receive Bearer Token.
- Create Import Settings and receive importSettingID.
- Boarding a merchant to your financial institution via the Upload XML/JSON SmartPay Merchant Boarding File.
- Successfully receiving MerchantID and fileID.
- Handling status errors.
Required prerequisites before you continue
- You will need to obtain your test credentials to try any of the examples in this guide. You should receive these from the Integrations team near the start of your project.
Upload Merchant Boarding File Workflow
Merchant File Upload Process Diagram
Integrator Merchant Boarding Flow | SmartPay Merchant Boarding Web Service Flow | ||||
SmartPay Merchant Boarding Web Service | |||||
| 1. | POST Bearer Token request | ||||
Response with token | |||||
| 2. | POST Create Import Settings request. (This step can be skipped if import settings have already been created.) | ||||
Response with importSettingID | |||||
| 3. | POST Upload XML/JSON SmartPay Merchant Boarding file. | ||||
Upload XML/JSON SmartPay Merchant Boarding file response with fileID | |||||
| 4. | GET Boarding File Processing Status request to obtain the status of the boarding file | ||||
Boarding File Processing Status response with MerchantID and fileID | |||||
| |||||
Step 1 Create a Bearer Token request using the entityID obtained from EPS. The purpose of this operation is to authenticate the storeID and storeKey credentials against the entityID specified in the endpoint. Once authenticated, the caller will be issued a temporary Bearer Token to be used in the subsequent requests.
Bearer Token Request Example
- "Method": POST
- "Endpoint":
https://ws.eps.profitstars.com/storeauth/entities/{entityId}/gettoken - "Content-Type": application/JSON.
{
"storeId": 9999999999,
"storeKey": "aAaAaAaAaAaAaAaAaAaAaAaAaAaA"
}
Step 2 Create the Import Settings request using the entiyID received. FIs can import two file types e.g., XML and/or JSON. This requires a unique one-time Import Settings ID generated by EPS for each file type when the settings are created. The Import Settings ID will then be persistent and should be passed along in the subsequent requests corresponding with the specific file types uploaded when required. We suggest that you store the Import Settings ID in your system for future file uploads.
Create Import Settings Request Example
- "Method": POST
- "Endpoint":
https://ws.eps.profitstars.com/fileupload/entities/{entityId}/file-uploads/settings - "Content-Type": application/JSON
- "Authorization": Set the Bearer Token in the authorization.
{
"settings": {
"fileTypeId": "Boarding",
"storeId": 9999999999,
"userName": "John Doe",
"custServId": 999999,
"ownerEntityId": 999999,
"fileFormat": "JSON",
"source": "FIBoarding",
"notifyIndividually": true
}
}
Step 3 Upload the XML/JSON formatted file into your API platform. Send Upload XML/JSON SmartPay Merchant Boarding File request using the entityID and importSettingID previously obtained from the Import Settings response.
Upload XML/JSON Merchant Boarding File Request Example
- "Method": POST
- "Endpoint":
https://ws.eps.profitstars.com/fileupload/entities/{entityId}/file-uploads/{importSettingsId} - "Content-Type": multipart/form-data. XML/JSON file containing the merchant data to board.
- "Authorization": Set the Bearer Token in the authorization.
{
"SchemaVersion": 3,
"CustServID": 999999,
"CustServName": "JH Financial Institution",
"EntityId": -1,
"ID": -1,
"FormStatus": 0,
"OriginationType": 4,
"CheckProcessorID": 999999,
"ExternalID": "UniqueID07-17-2024:864.161.196.43.91ExternalID",
"ResellerDisplayName": "JH Financial Institution",
"ResellerType": 0,
"CustomerInfo": {
"CustomerContactInfo": {
"Contacts": [
{
"ID": 1,
"Type": 2,
"Name": "John Doe 1",
"Title": "Director",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "100",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
},
{
"ID": 2,
"Type": 1,
"Name": "John Doe 2",
"Title": "Owner",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "111",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
},
{
"ID": 3,
"Type": 3,
"Name": "John Doe 3",
"Title": "Officer 1",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "111",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
},
{
"ID": 4,
"Type": 3,
"Name": "John Doe 4",
"Title": "Officer 2",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "100",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
},
{
"ID": 5,
"Type": 5,
"Name": "John Doe 5",
"Title": "Secondary Contact 1",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "100",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
},
{
"ID": 6,
"Type": 4,
"Name": "John Doe 6",
"Title": "Primary Contact 2",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "100",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
},
{
"ID": 7,
"Type": 5,
"Name": "John Doe 7",
"Title": "Secondary Contact 2",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "100",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
},
{
"ID": 8,
"Type": 2,
"Name": "John Doe 8",
"Title": "Primary Contact 1",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "100",
"BusinessFaxNumber": "417-235-6652",
"EmailAddress": "username@example.com"
}
]
},
"BusinessInfo": {
"LoginName": "john_doe",
"CorporateLegalName": "JH Test Company",
"DBAName": "JH Test Company",
"BusinessStructure": 8,
"FederalTaxID": "123004567",
"PhysicalAddress2": "663 W. Highway 60,",
"PhysicalAddress1": "663 W. Highway 60,",
"City": "Monett",
"State": "MO",
"Zip": "65708-8215",
"PhoneNumber": "417-235-6652",
"PhoneNumberExt": "2322",
"FaxNumber": "417-235-6652",
"CustomerServicePhoneNumber": "417-235-6652",
"CustomerServicePhoneNumberExt": "232"
}
},
"FIAccountInfo": {
"BankAccountInfo": {
"Locations": [
{
"DisplayLocationName": true,
"ID": 1,
"CustomerLocationNumber": "L1",
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 01",
"AAID": 0,
"AccountType": 1
}
}
},
{
"DisplayLocationName": true,
"ID": 2,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 02",
"AAID": 0,
"AccountType": 2
}
}
},
{
"DisplayLocationName": true,
"ID": 3,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 03",
"AAID": 0,
"AccountType": 0
}
}
},
{
"DisplayLocationName": true,
"ID": 4,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 04",
"AAID": 0,
"AccountType": 1
}
}
},
{
"DisplayLocationName": true,
"ID": 5,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 05",
"AAID": 0,
"AccountType": 2
}
}
},
{
"DisplayLocationName": true,
"ID": 6,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 06",
"AAID": 0,
"AccountType": 0
}
}
},
{
"DisplayLocationName": true,
"ID": 7,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 07",
"AAID": 0,
"AccountType": 1
}
},
"VelocitySettings": {
"Setting": [
{ "ID": 0 },
{ "ID": 1 }
],
"VelocityAction": 0
}
},
{
"DisplayLocationName": true,
"ID": 8,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 08",
"AAID": 0,
"AccountType": 2,
"AccountTypeName": "General Ledger (G/L)",
"ACHCompanyName": "ACH Location8 08"
}
}
},
{
"DisplayLocationName": true,
"ID": 9,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 09",
"AAID": 0,
"AccountType": 0
}
},
"VelocitySettings": {
"Setting": [
{ "ID": 2 },
{ "ID": 3 }
],
"VelocityAction": 2
},
"Notifications": [
{
"InterestedParties": { "EmailAddress": [ "username@example.com", "username@example.com", "username@example.com", "username@example.com", "username@example.com", "username@example.com" ] },
"From": "username@example.com",
"NotificationType": 2,
"NotificationSubType": 2
}
]
},
{
"DisplayLocationName": false,
"ID": 10,
"ActualAccounts": {
"Settlement": {
"AccountNumber": "9999999999",
"RoutingNumber": "223093564",
"BankName": "JH Test Bank and Trust 10",
"AAID": 0,
"AccountType": 1
}
}
}
],
"VelocitySettings": {
"Setting": [
{ "ID": 0 },
{ "ID": 1 },
{ "ID": 2 },
{ "ID": 3 }
],
"VelocityAction": 1
}
}
},
"ProcessingConfigOptions": {
"MerchantCapture": {
"ProcessingOptions": {
"ACHBackOfficeConversion": true,
"ACHPointOfPurchaseConversion": true,
"ACHAccountsReceivableConversion": true,
"Check21": true
},
"RDMFranking": {
"AlwaysOff": false,
"Configurable": true,
"AlwaysOn": true
}
},
"ACHConfigOptions": {
"ACHOptionsAndAdditionalServices": {
"TelephoneCheckOptions": {
"HideMerchantNotify": true,
"HideEmailNotify": true,
"HideRecordedNotify": false,
"HidePostcardNotify": true
},
"TelephoneCheck": true,
"InternetWeb": true,
"ScheduleRecurringACHCredits": true,
"ACHRefund": true,
"ScheduleRecurringACHDebits": true,
"ACHDebit": true,
"ACHCredit": true
},
"ACHCollectionOptions": {
"NotesSpecialInstructions": "FI Boarding ACH Collections",
"CheckFeeSettlement": {
"FinancialInstitutionAccount": true,
"ABA": "223093564",
"Acct": "9999999999"
},
"DaysBeforeClear": 3,
"FaceAmountRePresentments": 2,
"ReturnedCheckFeeAmount": 5.00,
"ReturnedCheckPresentments": 3,
"SettingsID": 0,
"TimeFinalPresentment": true,
"TimingOfFinalPresentment": 0,
"TimingOfFirstPresentment": 1
},
"DaysToHoldFundsSetByLocation": false,
"DaysToHoldFundsACHCredits": 1,
"DaysToHoldFundsACHDebits": 1,
"RepresentedCheck": false
},
"RemoteDepositNow": {
"CreateOneDepositPerDay": true,
"ProcessingOptions": {
"ACHBackOfficeConversion": false,
"ACHPointOfPurchaseConversion": false,
"ACHAccountsReceivableConversion": false,
"Check21": false
}
},
"RemoteDepositCapture": {
"ProcessingOptions": {
"ACHBackOfficeConversion": true,
"ACHPointOfPurchaseConversion": true,
"ACHAccountsReceivableConversion": true,
"Check21": true
},
"EmailNotification": {
"InterestedParties": { "EmailAddress": [ "username@example.com", "username@example.com", "username@example.com", "username@example.com", "username@example.com", "username@example.com" ] },
"SentToTransactionProcessing": true,
"RejectedItemsInBatch": true,
"ProcessedWithAdjustment": true,
"Rejected": true,
"FromEmailAddress": "username@example.com",
"DuplicateItemsInBatch": true,
"NeedsRescan": true
},
"BatchAdjustmentTolerance": 9000000,
"CheckIdentification": "For Deposit Only",
"EnforceCustomBatchID": true,
"RDMFrankingAlwaysOn": true,
"EnableDataEntry": true,
"DefaultEndorsement": true,
"CreateOneDepositPerDay": true
},
"MobileRemoteDepositCapture": {
"CreateOneDepositPerDay": true,
"BatchAdjustmentTolerance": 9000000,
"EnforceCustomBatchID": true,
"EnableDataEntry": true,
"DefaultEndorsement": true,
"RDMFrankingAlwaysOn": true,
"ProcessingOptions": {
"ACHBackOfficeConversion": true,
"ACHPointOfPurchaseConversion": true,
"ACHAccountsReceivableConversion": true,
"Check21": true
},
"EmailNotification": {
"InterestedParties": { "EmailAddress": [ "username@example.com", "username@example.com", "username@example.com", "username@example.com", "username@example.com", "username@example.com" ] },
"SentToTransactionProcessing": true,
"RejectedItemsInBatch": true,
"ProcessedWithAdjustment": true,
"Rejected": true,
"FromEmailAddress": "username@example.com",
"DuplicateItemsInBatch": true,
"NeedsRescan": true
}
}
},
"Scanners": [
{
"ID": 1,
"Enabled": false,
"Make": 851,
"SerialNumber": "Automated Terminal",
"LocationDescription": "Automated Terminal",
"TerminalDescription": "Automated Terminal",
"City": "Monett",
"State": "MO"
},
{
"ID": 2,
"Enabled": true,
"Make": 805,
"MakeName": "Panini / I:Deal",
"SerialNumber": "8536921263",
"LocationDescription": "Panini / I:Deal",
"TerminalDescription": "Panini / I:Deal",
"City": "Monett",
"State": "MO"
}
],
"Services": {
"ServicesRequested": {
"RemoteDepositCapture": true,
"MobileRemoteDepositCapture": true,
"RemoteDepositNow": false,
"ACH": true
},
},
"SecuredCommunication": {
"FIContactName": "JohnDoe",
"FIContactPhoneNumber": "417-235-6652",
"FIContactPhoneNumberExt": "121",
"FIEmailAddress": "username@example.com",
"FIContactFaxNumber": "417-235-6652"
},
"Signature": {
"SignatureDate": "2024-05-09T00:00:00",
"SignatureName": "John Doe"
},
"AdditionalOptionsAndFeatures": {
"AccountingRolesAndPrivileges": {
"TurnEditOptions": "On",
"DisplayTransactionSummaryHomePage": "On"
},
"DefaultPaymentType": "MailedIn",
"VelocityActionACH": 3,
"VelocityActionIRD": 3,
"SingleSignOn": {
"SSOEnabled": true,
"SSOEntityName": "None",
"SSOTemplate": "Q2",
"SSOCustomerId": "20242024",
"SSOBrandedURL": false,
"SSOEntityId": 0
},
"DepositSlipOption": "Static",
"DepositSlipAuxOnUs": "12345",
"Geolocation": {
"GeolocationService": "On",
"IsAllowed": "On"
}
},
"Segments": [
{
"Code": "531311",
"Sector": "Real Estate and Rental and Leasing",
"InternalName": "0001"
}
],
"VelocityEmailSettings": {
"VelocityEmailAddress": [
{ "VelocityEmailAddress": "username@example.com" },
{ "VelocityEmailAddress": "username@example.com" },
{ "VelocityEmailAddress": "username@example.com" }
],
"Enabled": true
},
"SecuredCommunicationAdditionalContacts": {
"SecuredCommunication": [
{
"FIContactFaxNumber": "417-235-6652",
"FIContactName": "JohnDoe",
"FIContactPhoneNumber": "417-235-6652",
"FIContactPhoneNumberExt": "111",
"FIEmailAddress": "username@example.com"
}
]
},
"Velocity": {
"VelocitySetting": [
{
"Description": "RDS Sale IRD Velocity",
"OperationType": {
"Debit": { "Sale": true }
},
"SettlementType": {
"IRD": { "Enabled": true },
"ACH": {
"Enabled": false,
"ARC": true,
"BOC": true,
"PPD_CCD": true,
"POP": true,
"RCK": true,
"TEL": true,
"WEB": true
}
},
"Warning": {
"LogWarnings": true,
"SingleAmountPercentage": 0.76,
"DailyPercentage": 0.87,
"PeriodPercentage": 0.83
},
"ID": 1,
"Enabled": true,
"ApplyAtDefaultLevel": true,
"SingleTransAmount": 1.5,
"SingleDayAmount": 10,
"PeriodAmount": 50,
"SingleDayCount": 50,
"PeriodCount": 200
},
{
"Description": "RDS Credit and Refund IRD Velocity",
"OperationType": {
"Credit": {
"Credit": true,
"Refund": true
}
},
"SettlementType": {
"IRD": { "Enabled": true },
"ACH": {
"Enabled": false,
"ARC": true,
"BOC": true,
"PPD_CCD": true,
"POP": true,
"RCK": true,
"TEL": true,
"WEB": true
}
},
"Warning": {
"LogWarnings": true,
"SingleAmountPercentage": 0.76,
"DailyPercentage": 0.87,
"PeriodPercentage": 0.83
},
"ID": 3,
"Enabled": true,
"ApplyAtDefaultLevel": true,
"SingleTransAmount": 1.5,
"SingleDayAmount": 10,
"PeriodAmount": 50,
"SingleDayCount": 50,
"PeriodCount": 200
},
{
"Description": "RDS Sale ACH Velocity",
"OperationType": {
"Debit": { "Sale": true }
},
"SettlementType": {
"IRD": { "Enabled": false },
"ACH": {
"Enabled": true,
"ARC": true,
"BOC": true,
"PPD_CCD": true,
"POP": true,
"RCK": true,
"TEL": true,
"WEB": true
}
},
"Warning": {
"LogWarnings": true,
"SingleAmountPercentage": 0.45,
"DailyPercentage": 0.75,
"PeriodPercentage": 0.95
},
"ID": 2,
"Enabled": true,
"ApplyAtDefaultLevel": true,
"SingleTransAmount": 1.5,
"SingleDayAmount": 10,
"PeriodAmount": 50,
"SingleDayCount": 50,
"PeriodCount": 200
},
{
"Description": "RDS Credit and Refund ACH Velocity",
"OperationType": {
"Credit": {
"Credit": true,
"Refund": true
}
},
"SettlementType": {
"IRD": { "Enabled": false },
"ACH": {
"Enabled": true,
"ARC": true,
"BOC": true,
"PPD_CCD": true,
"POP": true,
"RCK": true,
"TEL": true,
"WEB": true
}
},
"Warning": {
"LogWarnings": true,
"SingleAmountPercentage": 0.76,
"DailyPercentage": 0.87,
"PeriodPercentage": 0.83
},
"ID": 4,
"Enabled": true,
"ApplyAtDefaultLevel": true,
"SingleTransAmount": 1.5,
"SingleDayAmount": 10,
"PeriodAmount": 50,
"SingleDayCount": 50,
"PeriodCount": 200
}
]
},
}
<OnlineCustomerSetupForm xmlns="http://JHA/EPS/OnlineCustomerSetup/Schemas"
SchemaVersion="3"
CustServID="999999"
CustServName="JH Financial Institution"
EntityId="-1"
ID="-1"
FormStatus="0"
OriginationType="4"
CheckProcessorID="999999"
ExternalID="UniqueID07-17-2024:864.161.196.43.91ExternalID"
ResellerDisplayName="JH Financial Institution"
ResellerType="0">
<CustomerInfo>
<CustomerContactInfo>
<Contacts>
<Contact
ID="0"
Type="2"
Name="John Doe 1"
Title="Director"
PhoneNumber="417-235-6652"
PhoneNumberExt="100"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
<Contact
ID="1"
Type="1"
Name="John Doe 2"
Title="Owner"
PhoneNumber="417-235-6652"
PhoneNumberExt="111"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
<Contact ID="2"
Type="3"
Name="John Doe 3"
Title="Officer 1"
PhoneNumber="417-235-6652"
PhoneNumberExt="100"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
<Contact ID="3"
Type="3"
Name="John Doe 4"
Title="Officer 2"
PhoneNumber="417-235-6652"
PhoneNumberExt="100"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
<Contact ID="4"
Type="5"
Name="John Doe 5"
Title="Secondary Contact 1"
PhoneNumber="417-235-6652"
PhoneNumberExt="100"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
<Contact ID="5"
Type="4"
Name="John Doe 6"
Title="Primary Contact 2"
PhoneNumber="417-235-6652"
PhoneNumberExt="100"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
<Contact ID="6"
Type="5"
Name="John Doe 7"
Title="Secondary Contact 2"
PhoneNumber="417-235-6652"
PhoneNumberExt="100"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
<Contact ID="7"
Type="4"
Name="John Doe 8"
Title="Primary Contact 1"
PhoneNumber="417-235-6652"
PhoneNumberExt="100"
BusinessFaxNumber="417-235-6652"
EmailAddress="username@example.com">
</Contact>
</Contacts>
</CustomerContactInfo>
<BusinessInfo LoginName="john_doe"
CorporateLegalName="JH Test Company"
DBAName="JH Test Company"
BusinessStructure="8"
FederalTaxID="123004567"
PhysicalAddress2="663 W. Highway 60"
PhysicalAddress1="663 W. Highway 60"
City="Monett"
State="MO"
Zip="65708-8215"
PhoneNumber="417-235-6652"
PhoneNumberExt="2322"
FaxNumber="417-235-6652"
CustomerServicePhoneNumber="417-235-6652"
CustomerServicePhoneNumberExt="232">
</BusinessInfo>
</CustomerInfo>
<FIAccountInfo>
<BankAccountInfo>
<Locations>
<Location ID="1"
CustomerLocationNumber="L1">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 01"
AAID="0"
AccountType="1">
</Settlement>
</ActualAccounts>
</Location>
<Location ID="2">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 02"
AAID="0"
AccountType="2">
</Settlement>
</ActualAccounts>
</Location>
<Location ID="3">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 03"
AAID="0"
AccountType="0">
</Settlement>
</ActualAccounts>
</Location>
<Location ID="4">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 04"
AAID="0"
AccountType="1">
</Settlement>
</ActualAccounts>
</Location>
<Location ID="5">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 05"
AAID="0"
AccountType="2">
</Settlement>
</ActualAccounts>
</Location>
<Location ID="6">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 06"
AAID="0"
AccountType="0">
</Settlement>
</ActualAccounts>
</Location>
<Location ID="7">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 07"
AAID="0"
AccountType="1">
</Settlement>
</ActualAccounts>
<VelocitySettings VelocityAction="0">
<Setting ID="0"/>
<Setting ID="1"/>
</VelocitySettings>
</Location>
<Location ID="8">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 08"
AAID="0"
AccountType="2"
AccountTypeName="General Ledger (G/L)"
ACHCompanyName="ACH Location8 08">
</Settlement>
</ActualAccounts>
</Location>
<Location ID="9">
<DisplayLocationName>true</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 09"
AAID="0"
AccountType="0"/>
</ActualAccounts>
<Notifications>
<Notification NotificationType="2"
NotificationSubType="2"
From="username@example.com">
<InterestedParties>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
</InterestedParties>
</Notification>
</Notifications>
<VelocitySettings VelocityAction="2">
<Setting ID="2"/>
<Setting ID="3"/>
</VelocitySettings>
</Location>
<Location ID="10">
<DisplayLocationName>false</DisplayLocationName>
<ActualAccounts>
<Settlement AccountNumber="9999999999"
RoutingNumber="223093564"
BankName="JH Test Bank and Trust 10"
AAID="0"
AccountType="1">
</Settlement>
</ActualAccounts>
</Location>
</Locations>
<VelocitySettings VelocityAction="1">
<Setting ID="0">
</Setting>
<Setting ID="1">
</Setting>
<Setting ID="2">
</Setting>
<Setting ID="3">
</Setting>
</VelocitySettings>
</BankAccountInfo>
</FIAccountInfo>
<ProcessingConfigOptions>
<MerchantCapture>
<ProcessingOptions ACHBackOfficeConversion="1"
ACHPointOfPurchaseConversion="1"
ACHAccountsReceivableConversion="1"
Check21="1">
</ProcessingOptions>
<RDMFranking AlwaysOff="0"
Configurable="1"
AlwaysOn="1">
</RDMFranking>
</MerchantCapture>
<ACHConfigOptions DaysToHoldFundsSetByLocation="false"
DaysToHoldFundsACHCredits="1"
DaysToHoldFundsACHDebits="1"
RepresentedCheck="0">
<ACHOptionsAndAdditionalServices TelephoneCheck="1"
InternetWeb="1"
ScheduleRecurringACHCredits="1"
ACHRefund="1"
ScheduleRecurringACHDebits="1"
ACHDebit="1"
ACHCredit="1">
<TelephoneCheckOptions HideMerchantNotify="1"
HideEmailNotify="1"
HideRecordedNotify="0"
HidePostcardNotify="1">
</TelephoneCheckOptions>
</ACHOptionsAndAdditionalServices>
<ACHCollectionOptions>
<DaysBeforeClear>3</DaysBeforeClear>
<SettingsID>0</SettingsID>
<TimeFinalPresentment>true</TimeFinalPresentment>
<TimingOfFirstPresentment>1</TimingOfFirstPresentment>
<TimingOfFinalPresentment>0</TimingOfFinalPresentment>
<ReturnedCheckPresentments>3</ReturnedCheckPresentments>
<ReturnedCheckFeeAmount>5.00</ReturnedCheckFeeAmount>
<FaceAmountRePresentments>2</FaceAmountRePresentments>
<NotesSpecialInstructions>FI Boarding ACH Collections</NotesSpecialInstructions>
<CheckFeeSettlement>
<FinancialInstitutionAccount>true</FinancialInstitutionAccount>
<ABA>223093564</ABA>
<Acct>9999999999</Acct>
</CheckFeeSettlement>
</ACHCollectionOptions>
</ACHConfigOptions>
<RemoteDepositNow CreateOneDepositPerDay="1">
<ProcessingOptions ACHBackOfficeConversion="0"
ACHPointOfPurchaseConversion="0"
ACHAccountsReceivableConversion="0"
Check21="0">
</ProcessingOptions>
</RemoteDepositNow>
<MobileRemoteDepositCapture BatchAdjustmentTolerance="9000000"
CheckIdentification="For Deposit Only"
EnforceCustomBatchID="1"
RDMFrankingAlwaysOn="1"
EnableDataEntry="1"
DefaultEndorsement="1"
CreateOneDepositPerDay="1">
<ProcessingOptions ACHBackOfficeConversion="1"
ACHPointOfPurchaseConversion="1"
ACHAccountsReceivableConversion="1"
Check21="1"/>
<EmailNotification SentToTransactionProcessing="1"
RejectedItemsInBatch="1"
ProcessedWithAdjustment="1"
Rejected="1"
FromEmailAddress="username@example.com"
DuplicateItemsInBatch="1"
NeedsRescan="1">
<InterestedParties>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
</InterestedParties>
</EmailNotification>
</MobileRemoteDepositCapture>
<RemoteDepositCapture BatchAdjustmentTolerance="9000000"
CheckIdentification="For Deposit Only"
EnforceCustomBatchID="1"
RDMFrankingAlwaysOn="1"
EnableDataEntry="1"
DefaultEndorsement="1"
CreateOneDepositPerDay="1">
<ProcessingOptions ACHBackOfficeConversion="1"
ACHPointOfPurchaseConversion="1"
ACHAccountsReceivableConversion="1"
Check21="1"/>
<EmailNotification SentToTransactionProcessing="1"
RejectedItemsInBatch="1"
ProcessedWithAdjustment="1"
Rejected="1"
FromEmailAddress="username@example.com"
DuplicateItemsInBatch="1"
NeedsRescan="1">
<InterestedParties>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
<EmailAddress>username@example.com</EmailAddress>
</InterestedParties>
</EmailNotification>
</RemoteDepositCapture>
</ProcessingConfigOptions>
<Scanners>
<Scanner ID="0"
Enabled="false"
Make="851"
SerialNumber="Automated Terminal"
LocationDescription="Automated Terminal"
TerminalDescription="Automated Terminal"
City="Dallas"
State="TX"/>
<Scanner ID="1"
Enabled="true"
Make="805"
MakeName="Panini / I:Deal"
SerialNumber="8536921263"
LocationDescription="Panini / I:Deal"
TerminalDescription="Panini / I:Deal"
City="Monett"
State="MO"/>
</Scanners>
<Services>
<ServicesRequested RemoteDepositCapture="1"
MobileRemoteDepositCapture="1"
RemoteDepositNow="0"
ACH="1">
</ServicesRequested>
</Services>
<Velocity>
<VelocitySetting ID="0"
Enabled="true"
ApplyAtDefaultLevel="true"
SingleTransAmount="1.5"
SingleDayAmount="10"
SingleDayCount="50"
PeriodAmount="50"
PeriodCount="200">
<OperationType>
<Debit>
<Sale>true</Sale>
</Debit>
</OperationType>
<SettlementType>
<ACH Enabled="false">
<WEB>true</WEB>
<TEL>true</TEL>
<RCK>true</RCK>
<PPD_CCD>true</PPD_CCD>
<POP>true</POP>
<BOC>true</BOC>
<ARC>true</ARC>
</ACH>
<IRD Enabled="true"/>
</SettlementType>
<Warning>
<LogWarnings>true</LogWarnings>
<SingleAmountPercentage>0.76</SingleAmountPercentage>
<DailyPercentage>0.87</DailyPercentage>
<PeriodPercentage>0.83</PeriodPercentage>
</Warning>
<Description>RDS Sale IRD Velocity</Description>
</VelocitySetting>
<VelocitySetting ID="2"
Enabled="true"
ApplyAtDefaultLevel="true"
SingleTransAmount="1.5"
SingleDayAmount="10"
SingleDayCount="50"
PeriodAmount="50"
PeriodCount="200">
<OperationType>
<Credit>
<Credit>true</Credit>
<Refund>true</Refund>
</Credit>
</OperationType>
<SettlementType>
<ACH Enabled="false">
<WEB>true</WEB>
<TEL>true</TEL>
<RCK>true</RCK>
<PPD_CCD>true</PPD_CCD>
<POP>true</POP>
<BOC>true</BOC>
<ARC>true</ARC>
</ACH>
<IRD Enabled="true"/>
</SettlementType>
<Warning>
<LogWarnings>true</LogWarnings>
<SingleAmountPercentage>0.76</SingleAmountPercentage>
<DailyPercentage>0.87</DailyPercentage>
<PeriodPercentage>0.83</PeriodPercentage>
</Warning>
<Description>RDS Credit and Refund IRD Velocity</Description>
</VelocitySetting>
<VelocitySetting ID="1"
Enabled="true"
ApplyAtDefaultLevel="true"
SingleTransAmount="1.5"
SingleDayAmount="10"
SingleDayCount="50"
PeriodAmount="50"
PeriodCount="200">
<OperationType>
<Debit>
<Sale>true</Sale>
</Debit>
</OperationType>
<SettlementType>
<ACH Enabled="true">
<WEB>true</WEB>
<TEL>true</TEL>
<RCK>true</RCK>
<PPD_CCD>true</PPD_CCD>
<POP>true</POP>
<BOC>true</BOC>
<ARC>true</ARC>
</ACH>
<IRD Enabled="false"/>
</SettlementType>
<Warning>
<LogWarnings>true</LogWarnings>
<SingleAmountPercentage>0.45</SingleAmountPercentage>
<DailyPercentage>0.75</DailyPercentage>
<PeriodPercentage>0.95</PeriodPercentage>
</Warning>
<Description>RDS Sale ACH Velocity</Description>
</VelocitySetting>
<VelocitySetting ID="3"
Enabled="true"
ApplyAtDefaultLevel="true"
SingleTransAmount="1.5"
SingleDayAmount="10"
SingleDayCount="50"
PeriodAmount="50"
PeriodCount="200">
<OperationType>
<Credit>
<Credit>true</Credit>
<Refund>true</Refund>
</Credit>
</OperationType>
<SettlementType>
<ACH Enabled="true">
<WEB>true</WEB>
<TEL>true</TEL>
<RCK>true</RCK>
<PPD_CCD>true</PPD_CCD>
<POP>true</POP>
<BOC>true</BOC>
<ARC>true</ARC>
</ACH>
<IRD Enabled="false"/>
</SettlementType>
<Warning>
<LogWarnings>true</LogWarnings>
<SingleAmountPercentage>0.76</SingleAmountPercentage>
<DailyPercentage>0.87</DailyPercentage>
<PeriodPercentage>0.83</PeriodPercentage>
</Warning>
<Description>RDS Credit and Refund ACH Velocity</Description>
</VelocitySetting>
</Velocity>
<VelocityEmailSettings Enabled="1">
<VelocityEmailAddress>username@example.com</VelocityEmailAddress>
<VelocityEmailAddress>username@example.com</VelocityEmailAddress>
<VelocityEmailAddress>username@example.com</VelocityEmailAddress>
</VelocityEmailSettings>
<SecuredCommunication FIContactFaxNumber="417-235-6652"
FIContactName="JohnDoe"
FIContactPhoneNumber="417-235-6652"
FIContactPhoneNumberExt="121"
FIEmailAddress="username@example.com">
</SecuredCommunication>
<SecuredCommunicationAdditionalContacts FIContactFaxNumber="417-235-6652"
FIContactName="JohnDoe"
FIContactPhoneNumber="417-235-6652"
FIContactPhoneNumberExt="111"
FIEmailAddress="username@example.com">
</SecuredCommunicationAdditionalContacts>
<Signature SignatureDate="2024-05-09T00:00:00"
SignatureName="John Doe">
</Signature>
<Segments>
<Segment Code="531311"
Sector="Real Estate and Rental and Leasing"
InternalName="0001"/>
</Segments>
<SpecialInstructions>Special Boarding</SpecialInstructions>
<AdditionalOptionsAndFeatures>
<AccountingRolesAndPrivileges>
<TurnEditOptions>On</TurnEditOptions>
<DisplayTransactionSummaryHomePage>On</DisplayTransactionSummaryHomePage>
</AccountingRolesAndPrivileges>
<SingleSignOn>
<SSOEnabled>true</SSOEnabled>
<SSOEntityId>0</SSOEntityId>
<SSOEntityName>None</SSOEntityName>
<SSOTemplate>Q2</SSOTemplate>
<SSOCustomerId>20242024</SSOCustomerId>
<SSOBrandedURL>false</SSOBrandedURL>
</SingleSignOn>
<DefaultPaymentType>MailedIn</DefaultPaymentType>
<VelocityActionACH>3</VelocityActionACH>
<VelocityActionIRD>3</VelocityActionIRD>
<DepositSlipOption>Static</DepositSlipOption>
<DepositSlipAuxOnUs>12345</DepositSlipAuxOnUs>
<Geolocation>
<GeolocationService>On</GeolocationService>
<IsAllowed>On</IsAllowed>
</Geolocation>
</AdditionalOptionsAndFeatures>
</OnlineCustomerSetupForm>
The Merchant Boarding File response returns the fileId needed for the GetBoardingFileProcessingStatus request.
We suggest storing the fileId for audit purposes.
Upload XML/JSON Merchant Boarding File Response Example
- "HTTP Status": 200
- "Content-Type": application/JSON
{
"fileId": "999999999999999999999999",
"fileParentId": null,
"status": "Uploaded",
"entityId": 999999,
"locationId": 0,
"fileTypeId": "Boarding",
"errors": [],
"summaries": [],
"statistics": {},
"events": [
{
"event": "Received",
"applicationId": 113,
"userId": 0,
"userName": "John Doe",
"date": "2024-06-19T12:23:39.128215-05:00"
},
{
"event": "Upload",
"applicationId": 113,
"userId": 3000152758,
"userName": "John Doe",
"date": "2024-06-19T12:23:39.2464933-05:00"
}
]
}
Step 4 Get Boarding File Processing Status request using the fileID logged in step 3. The purpose of this operation is to obtain the boarding file processing status.
It is required to ping the Get Boarding File Processing Status Request no more than every five minutes after receiving an "Uploaded" status from the Upload XML/JSON Merchant Boarding File Response. This allows sufficient time for the file to be verified and processed.
Get Boarding File Processing Status Response Example
- "Method": GET
- "Endpoint":
https://ws.eps.profitstars.com/fileupload/entities/{entityId}/file-uploads/{fileId} - "Content-Type": application/JSON
- "Authorization": Set the Bearer Token in the authorization.
{
{
"fileId": "999999999999999999999999",
"fileParentId": null,
"status": "Processed",
"entityId": 99999,
"locationId": 0,
"fileTypeId": "Boarding",
"errors": [],
"summaries": [
"MerchantId: 9999999"
],
"statistics": {
"Image Bytes": 19754
},
"events": [
{
"event": "Received",
"applicationId": 113,
"userId": 0,
"userName": "John Doe",
"date": "2024-06-10T10:47:53.4608663-05:00"
},
{
"event": "Upload",
"applicationId": 113,
"userId": 0,
"userName": "John Doe",
"date": "2024-06-10T10:47:53.5255496-05:00"
},
{
"event": "Verify",
"applicationId": 113,
"userId": 0,
"userName": "John Doe",
"date": "2024-06-10T10:47:54.4903513-05:00"
},
{
"event": "Process",
"applicationId": 113,
"userId": 0,
"userName": "John Doe",
"date": "2024-06-10T10:48:06.1094028-05:00"
}
]
}
}
Handling File Upload and File Status Responses
Common status return messages and how you should handle them:
Upload XML/JSON Merchant Boarding File Response
-
Errored: The file did not upload successfully.
Action: Retry the upload. -
Uploaded: The file uploaded successfully with no errors.
Action: Store the fileID and proceed to the Get Boarding File Processing Status Request.
Get Boarding File Processing Status Response
-
Errored: The file contains incorrect information or is missing required attributes or values. The errors array lists the specific issues.
Action: Correct the errors and retry the upload. -
Uploaded: The file might be a duplicate or have formatting issues or a file being submitted isn't in the correct format of XML/JSON that was set when creating the Import Settings. The errors array lists the specific issues.
Action: If the errors array lists any errors, resolve the issues and retry the upload.
Action: If the errors array is empty, ping the Get Boarding File Processing Status Request again. -
Verified: The system is still processing.
Action: Ping the Get Boarding File Processing Status Request again. -
Processed: The file has been successfully processed.
Action: Store the MerchantId from the summaries node.
Next steps
- Review the API Reference
Please review the API Reference to see all APIs elements and their technical specifications.
- Explore other guides
We have other guides to show how to leverage our APIs in other common use cases so if this one doesn’t cover what you are looking for, give another guide a try. If your situation or question is not covered in the current guide, consult another resource.
- Get certified and move into production
Ready to put your new code into production use? Refer to our Certification Process Guide that explains our next steps and how to contact us to get started.