Batch Processing

Site Admin Integration

SFTP Batch Upload and Processing

This page is about understanding the v3 Batch file upload process via sFTP. Each template field provides specs and explanations for better understanding. The document has downloadable CSV templates for ordering, registering, and loading cards. Users can also find a look-up table for the error messages here: Error Messages. If you have any issues or questions, refer to our FAQs page.

Prerequisites

Access to Filezilla – Filezilla is an open-source, cross-platform FTP application for file transfers. Please get in touch with our backend engineer for access and more details.

Processing a File

A batch file uploaded via SFTP goes through Pre-processing and Post-processing stages. These stages ensure the file is validated, processed, and managed with appropriate error handling and status updates. Completed and failed files are placed within the processed folder with suffixes _completed or _failed , depending on the result.

Stages of Batch File Processing

  1. Client Creates a Batch File

    • Generate a Batch File: Create a batch file to place orders of type Instant Issue/Personalized/Register/Load using the Unified V3 template.
  2. Upload to Configured SFTP Folder

    • Use an SFTP Client: Use an SFTP client like FileZilla to upload the batch file to a configured folder outside the processed folder. Refer to the prerequisites section for more details.
  3. Pre-processing

    Pre-processing tasks are handled by Dash to prepare and validate the file before further processing.

  • File Pickup and Validation:
    • Dash automatically picks up the file every 15 minutes for processing and validation.
    • If Validation is Successful:
    • The file is routed to the appropriate landing zone based on size and traffic:
      • Files with 4000 or more records are dropped in Landing Zone 3.
      • Smaller files are dropped in Landing Zone 1 or 2.
    • The status updates to “File Uploaded”.
    • If Validation Fails:
    • The file is placed in the processed folder with one of the following suffixes:
      • _failed: Indicates overall file failure.
      • _duplicate: Indicates duplicate records.
      • _invalid: Indicates an invalid template or record.
      • _partialprocessed: Indicates partial validation success.
    • An error message is updated in the file, and the Account Manager (AM) and user are notified about the failure. Users must resolve the issue and re-upload the corrected file. Refer to the error guide for common issues.

4. Post-processing

Post-processing tasks are managed by the processing platform to complete order processing and deliver results back to Dash.

  • File Processing at Processing Platform:
    • Once a file is successfully routed to the processing platform, further validation and order processing begin.
    • Successful Processing:
    • If all records are processed successfully:
      • A return file is generated with the suffix _completed and placed in the processed folder (if configured by the customer).
      • Additional columns such as DDA number, proxy card number, etc., are included in the return file.
      • Fetch PersonID, Exp Date, DDA, and TRN from the processing platform and store them in Dash.
      • Results are updated on the Dash portal, and the status changes to “Completed”.
    • If some records fail:
      • Those records are marked as failed, and a file with the suffix _partialprocessed is placed in the processed folder.
    • If all records fail:
      • A return file is generated with the suffix _failed_ddmmyyyy_hhmmss and placed in the processed folder.
    • Entire File Failed:
    • A return file is generated with the suffix _failed and placed in the failed folder (if configured by the customer).
    • The status updates to “Failed”.

Note: Post-processing results may take some time to reflect on the Dash portal.

Dash SFTP Process Flow

sFTP Batch File Template

Users can use this template to upload batch files via sFTP to the Dash portal to order, register, and load cards. Each of these templates has a detailed view of the parameters involved, whether mandatory or not, as well as data type, size, and description. Some fields are conditional, meaning they may or may not be required.

A file is returned from Dash after successful processing. The file contains additional information from the processing, such as proxy card number, routing number, etc. The format of this file is noted below in the V3 Return Tab.

Note: We’ve provided tabs below with the data needed for common actions (Instant Issue Order, Personalized Order, Register, and Load). Use the V3 Unified Template for all orders, filling in only the necessary fields and leaving the rest empty.

V3 Unified Template Spec

Column Required Type Size Desc
CPID Yes Numeric 9 Customer Program ID
This unique ID is provided by Dash upon registration. CPID is used to determine the program for a customer.
name_first Yes String 50 first name of the person
name_last Yes String 50 last name of the person
cardholder_external_identifier No String 60 used to store unique identifier like employeeID stored with card holder data (Processing platform Other Field)
transaction_external_identifier No String 36 A unique ID is generated for each transaction, though it currently serves no specific purpose.
ssn_number Conditional Numeric 9 SSN of person, if required on program, OR nine digit identifier. Note that last four digits would be Access Code. Not needed for load only
dob Yes Date 10 date of birth in mm/dd/yyyy format
email Conditional A/N 50 Email id of the person. REQUIRED if using DIGITAL product.
Allowed characters: letters (A–Z, a–z), numbers (0–9), and symbols: ! # $ % & ‘ * + – / = ? _ \ { } ~
Restrictions:
. (dot) and other special characters (^ and |) are not allowed at the start, end, or consecutively.
Allowed special characters must be followed by a letter or number.
phone Yes Numeric 23 phone number of the receiving person
Accepts international phone numbers in the format +<CountryCode>(<AreaCode>)-(<Prefix>)-(<LineNumber>), such as +1(555)-(555)-(5555), in a continour numberic format without any symbols, e.g., 15555555555.
name_on_card No String 26 will be embossed on the card if passed and the first name and last name will be bypassed
fourth_line No String 26 will be printed on card if passed under name.
proxy_number No Numeric 19 For card registrations and loads
card_holder_home_address1 Conditional A/N 50 residential address/street of the receiver. Not required for load only
card_holder_home_address2 Conditional A/N 50 additional information about the residential address. Not required for load only
card_holder_home_city Conditional String 18 residential city. Not required for load only
card_holder_home_state Conditional String 2 residential state code in abbreviated form, e.g. AL for Alabama, CA for California. Not required for load only
card_holder_home_zip Conditional Numeric 5 residential zip code. Not required for load only
qty No Numeric 10 Quantity for Instant Issue cards orders only
load_value No Decimal 10 Up to 2 positive decimal places to load the card, e.g., 1.20. We allow load with
Personalized order
Card registration
Load card.
card_type Yes String 10 Digital or Physical
order_type Yes String 25 Personalized, InstantIssue, CardRegistration, LoadCard, Reward
transaction_desc No A/N 40 comment will be displayed in trx history/activity detail
shipping_type Conditional String 25 Bulkship Or IndividualShip
BulkShip – Cards will be shipped in bulk to a single (i.e. company) address.
IndividualShip – Cards will be shipped to cardholder’s individual addresses.
Note: Required for personalized orders. For Personalized Digital orders pass IndividualShip
shipping_method Conditional String 50 For bulk shipping  – UPS Next Day Air, UPS Ground, UPS Second Day, FedEx Ground, FedEx 2nd Day, FedEx Next Day
For Individual ship – USPS First Class, UPS Next Day Air, UPS Ground, UPS Second Day, USPS w/ Tracking, FedEx Ground, FedEx 2nd Day, FedEx Next Day
Note: Required for personalized orders. For Personalized Digital orders pass: USPS First Class
shipping_addressee Conditional String 26 for card ordering/bulk shipping
shipping_attention Conditional String 18 for card ordering/bulk shipping
shipping_address1 Conditional A/N 50 shipping address/street of the receiver
shipping_address2 Conditional A/N 50 additional information about the shipping address
shipping_city Conditional String 18 shipping city
shipping_state Conditional String 2 shipping state code in abbreviated form, e.g. AL for Alabama, CA for California
shipping_zip Conditional Numeric 5 shipping zip code
order_custom_data_field1 No String 255 Custom data fields that will be associated to the Order Flow
order_custom_data_field2 No String 255  Custom data fields that will be associated to the Order Flow
order_custom_data_field3 No String 255  Custom data fields that will be associated to the Order Flow
order_custom_data_field4 No String 255 Custom data fields that will be associated to the Order Flow
order_custom_data_field5 No String 255 Custom data fields that will be associated to the Order Flow
reg_custom_data_field1 No String 255 Custom data fields that will be associated to the Registration Flow
reg_custom_data_field2 No String 255 Custom data fields that will be associated to the Registration Flow
reg_custom_data_field3 No String 255 Custom data fields that will be associated to the Registration Flow
reg_custom_data_field4 No String 255 Custom data fields that will be associated to the Registration Flow
reg_custom_data_field5 No String 255 Custom data fields that will be associated to the Registration Flow
load_custom_data_field1 No String 255 Custom data fields that will be associated to the Value Load transaction
load_custom_data_field2 No String 255 Custom data fields that will be associated to the Value Load transaction
load_custom_data_field3 No String 255 Custom data fields that will be associated to the Value Load transaction
load_custom_data_field4 No String 255 Custom data fields that will be associated to the Value Load transaction
load_custom_data_field5 No String 255 Custom data fields that will be associated to the Value Load transaction
discretionary_data_1 No String 50 Discretionary data fields used to dynamically pass data to Arrow eye
discretionary_data_2 No String 50 Discretionary data fields used to dynamically pass data to Arrow eye
discretionary_data_3 No String 50 Discretionary data fields used to dynamically pass data to Arrow eye

Batch Processing Flow