Batch Upload

Multiple ACH transactions can be submitted in a batch file either programatically or by manually submitting the file on the Merchant Center website.  Batch Transactions are usually not run against your merchant profile's verification options ( for instance AccountChek or FraudChek ).  This can be updated with the Batch Verification option.

This section focuses on uploading batches programatically

Batch types

You can submit a batch with the IsAuth parameter.  This will change the type of batch you are uploading.  A batch can either be Batch of Authorizations, or a Batch of Transactions.  The format is the same between the two.

Batch Verification

Batch Verification is an option set on your merchant account.  When you upload a batch ( Auth or Transactional ), we can create the transactions in a pending state.  We will run these transaction through your verification methods setup on your account and update the items.  You should use the FileDownload, FileDownloadAuth batch interfaces, or Status, AuthStatus to get the statuses of your items after they have been verified.

Endpoints

URL

XML Endpoint

/EpnPublic/FileUpload.aspx

CGI

File Parameters

Batch upload files may be submitted in one of 3 formats: CSV (Comma-Separated Values), XML, or ACH.  In the CSV format, the fields may be delimited by either commas (,) or semicolons (;) or pipes (|).  In both CSV and XML formats, each transaction consists of the following fields.

Field or  XML Element Name

Type

Max. Chars.

Requirements

Notes

CompanyID

Int32

6

Required

Merchant's 6-digit Company Number.

TransID

Int32

8

Ignored

Unused.

ServiceType

Int32

3

Ignored

Unused.

NewResubmit

Char

1

Optional

N = new, R = resubmission.

ExternalClientID

String

40

Required

ReferenceNumber: Identifier assigned by merchant to the transaction.

BillerName

String

16

Ignored

Unused.

BankAccountName

String

50

Required

Consumer's full name, first name first, last name last, with no commas.

ExtTransID

Int32

15

Ignored

Unused.

CreationDate

Date

10

Ignored

Unused.

TransmitDate

Date

10

Ignored

Unused.

TransmitTime

Time

8

Ignored

Unused.

EnteredBy

String

10

Optional

Data entry clerk.

TransType

Char

1

Required

D = Debit, C = Credit.

Amount

Decimal

9

Required

U.S. Dollars. For Prenote, set Amount to 0.

EntryDescription

String

10

Ignored

Unused.

ItemDescription

String

15

Depends

SEC Code – for example ARC, BOC, RCK, CCD, PPD, TEL, or WEB.

BankName

String

20

Ignored

Unused.

BankPhone

String

20

Ignored

Unused.

TRN

Int32

9

Required

Bank routing number.  Always 9 digits.

DDA

Int64

17

Required

Bank account number.

AccountType

Char

1

Required

C = Checking, S = Savings.

CheckNumber

Int32

8

Optional

 

TypeCode

String

2

Ignored

Unused.

CollectionType

Char

1

Ignored

Unused.

ClientAddress

String

50

Optional

Street and number.

ClientAddress2

String

50

Optional

Unit number, etc.

ClientCity

String

50

Optional

 

ClientState

String

2

Optional

 

ClientZip

String

10

Optional

Can be 5 or 9 digits, in the format "12345" or "12345-6789".

ClientPhone

Int32

10

Optional

10-digit North American phone numbers only.

ClientSSN

String

9

Optional

Optional. Social Security Number, in the format "123456789".

ClientDOB

Date

10

Optional

Date Of Birth, in the format: "MM/DD/YYYY".

ClientDL

String

20

Optional

Driver's License Number.

AuthID

Int

15

Depends

Authorization ID for PreAuthorization. Only required if account is set up this way.

ConsumerId

String

40

Optional

GUID Authorization ID

Addenda

String

80

Optional

 

Trace15

String

?

Depends

Is optional, but depends if the merchant is configured to allow entering this parameter

Email

String

?

Optional

Note

String

900

Optional

PaymentType

String

20

Optional

PaymentTypeFallback

String

20

Optional

For CSV:

There must be 1 transaction per line.  Lines must be terminated by CR+LF (DOS style) line breaks. Each line consists of the 38 fields described above, delimited by either commas , or semicolons ; or pipes | as desired. All 41 fields must be delimited even when they are blank, so each line must always contain exactly 40 delimiters. There must be no extraneous white space nor quotation marks. Since the fields are not labeled in any way, they must appear in the order given by the above table.

For XML:

The root element is <ImportFile>. Inside the root element is one <Transactions> element. Inside the <Transactions> element are one or more <Transaction> elements. Inside each <Transaction> element are elements described in the above table, which may appear in any order.  The data for each element should lie between the begin and end tags. Remember that XML is, by definition, always case-sensitive.

For ACH:

ACH format is defined by NACHA, and is described elsewhere.

CGI Parameters

Element Name

Type

Max. Chars.

Requirements

Notes

UserID

String

16

Required

Normally this is the merchant's 6-digit Company Number.

Password

String

16

Required

 

Format

String

3

Required

"TXT" for CSV format, "XML" for XML format, or "ACH" for NACHA format.

Delimiter

String

16

Optional

Either "Comma" (default), "Semicolon", or "Pipe".  Ignored when Format=XML.

IsAuth

Boolean

1

Optional

Either “True”, “False”, “1”, or “0”. 

Request Samples

a) CSV

Query parameters

/EPNPublic/FileUpload.aspx?UserID={MerchantNumber}&Password={MerchantPassword}&Format=TXT

CSV file contents

{MerchantNumber},,,,2024041803,,John Smith,,,,,,D,2,,,,,888888884,111333444,C,,,,,,,,,,,,,,,,,,

b) XML

Query parameters

/EPNPublic/FileUpload.aspx?UserID={MerchantNumber}&Password={MerchantPassword}&Format=XML

Request body

<ImportFile>
    <Transactions>
        <Transaction>
            <CompanyID>{MerchantNumber}</CompanyID>
            <ExternalClientID>2024041901</ExternalClientID>
            <BankAccountName>John Smith</BankAccountName>
            <TransType>D</TransType>
            <Amount>10</Amount>
            <TRN>888888884</TRN>
            <DDA>111133334444</DDA>
            <AccountType>C</AccountType>
        </Transaction>
    </Transactions>
</ImportFile>

Response

Success