SOAP Web Service

Overview

Purpose

The purpose of the GoToBilling (GTB) SOAP Web Service is to provide an easy set methods for sending and receiving information from GTB in the form of SOAP requests. This allows you have a readily available platform integrating many current applications with GTB.

Summary of GoToBilling SOAP Web Service

The GoToBilling SOAP Web Services main functions are to create and update customers records and accounts, search for future, pending and past transactions and to process transactions. This web service can be used to integrate any new or existing application with the GTB application.

The rest of this document will summarize the web service, it's methods, the complex types used, and examples of usage. A WSDL for the web service can be found at:

https://secure.gotobilling.com/gateway/services/1.4/soap.php?wsdl

Please see SOAP API Release Notes for a history of changes.

Version History

1.3 **DEPRECATED**

1.4

Complex Types

This section defines the various complex types used in this web service. Some of these type are used for Input, Output or both.

MerchantAuth

The MerchantAuth complex type allows for the delivery of the client credentials to authorize service requests.

MerchantAuth Fields

Field NameOptional (O); Conditional (C);Data Type & LengthDescription & Field Values

**DEPRECATED** login

OstringThis is the login identifier supplied by OmniFund.  This can be the six digit Merchant ID or the OAuth client_id.  Required if no access_token is supplied

**DEPRECATED** pin

OstringThe associated gateway pin to the Merchant ID supplied in the 'login' field, or the associated client_secret associated with the client_id.  Required if no access_token is supplied
access_tokenOstringValid OAuth access token. 
access_keyO or CstringProvide API access key pair parameters in lieu of standard MerchantAuth fields - CONDITIONALLY  REQUIRED: if access_key parameter is supplied, access_secret parameter must also be supplied. For more information on obtaining an API access key, see: Managing API Access Keys
access_secretO or CstringProvide API access key pair parameters in lieu of standard MerchantAuth fields - CONDITIONALLY  REQUIRED: if access_key parameter is supplied, access_secret parameter must also be supplied. For more information on obtaining an API access key, see: Managing API Access Keys
source_descriptionOstringDescription of the source originating the request.
module_descriptionOstringDescription of the module originating the request.

CustomerInfo

Customers or Customer Records are the individual people or companies that are customers to the Business(MID) we are working with. Typical customer data is Name, Address, Phone number etc. There are two unique fields in GTB that help identify customers. More will be explained below but one is a unique internal ID created by GTB called customer_id and the other one is created externally by the business called customer_name. The customer_name created by the business allows them to use a unique value from their accounting or other customer service systems so they can tie their data to the data in GTB.

CustomerInfo Fields

Field NameRequired (R); Optional (O); Conditional (C); Read Only (RO)Data Type & LengthDescription & Field Values
customer_idCString (50)A unique customer identifier set by GTB.
first_nameCString (50)Required if display_as='contact'
last_nameCString (50)Required if display_as='contact'
customer_nameRString (100)Externally defined unique field for each Customer. This is a free-form identifier that is created by the user to allow matching of customers by existing customer numbers in accounting or other customer databases and systems. This field MUST be unique in order for many other functions and features the customer may use.
display_asRString (50)Values: 'company' or 'contact'.

Defaults to contact if not recognized.

companyCString (50)Required if display_as='company'
address1OString (100)
address2OString (50)
cityOString (50)
stateOString (2)
zipOString (20)
phoneOString (50)
emailOString (100)
ssnOString (50)
dl_numberOString (20)
dl_stateOString (2)
notesOString
activeRBooleanDetermines whether a customer record is Active or Inactive. Inactive customers show as grayed out within the GTB application
  • 0 – Disabled (Inactive)
  • 1 – Enabled (Active)
hiddenOBooleanDetermines whether customer record is visible or not within the main GTB app. It’s the status field that is used when a customer record is deleted but in reality the we don’t delete the customer from the database, we just make it invisible to the user.
  • 0 – Hidden
  • 1 – Visible
date_addedROStringThe date the customer was originally added to GTB. YYYYMMDD format

AccountInfo

Accounts are one or more payment accounts(methods) a customer may have. For example, a customer may have 4 payment accounts. One that is a VISA card, another that is a MasterCard and 2 different bank accounts. Under normal situations a customer usually only has one Account but any one customer may have multiple Accounts they may be paying from for any given Business(MID).

AccountInfo Fields

Field NameRequired (R); Optional (O); Conditional (C); Read Only (RO)Data Type & LengthDescription & Field Values
account_idCIntA unique identifier assigned by GTB for every Account that is added to the system.
customer_idRIntUnique ID of the customer the account is being assigned to.
account_nameOString (100)This field allows a consumer to name their checking or credit card account to anything they want as an identifier for their account.
account_numberCString (100)

For credit cards it is the 16 digit card number and for Checking Accounts it is the routing and account number including all leading zeros.

routing_numberCString(9)ABA Routing number for bank account.
enabledOBooleanDefines whether this Account is enabled for adding transactions or not. If it is disabled, then no transactions can be done using this account within GTB.
  • 0 – disabled
  • 1 – enabled
typeRIntDefines the account type, i.e. credit card or ACH
  • 1 – Checking
  • 2 – Credit Card
bank_nameCString (50)If account type is ACH, indicates the name of the banking institution
cc_nameCString (100)Actual Name of the customer as it appears on their credit card.
expirationCStringCard expiration date. In the format: MMYY
cvvCString (4)The 3 or 4 digit card security value on the card. When retrieving information about an account the CVV value will always be masked for security reasons.
cc_zipCString (5)The 5 digit billing zip code associated with the card.
is_savingsCBooleanTells you if the Checking Account is a Savings account or not.
  • 0=no
  • 1=yes
date_addedROStringFormat: YYYYMMDD
date_modifiedROStringFormat:YYYYMMDD

TransactionInfo

There are several different types of transactions but there are two broad categories for Transactions. Pending transactions and History Transactions. Pending transactions are those that are scheduled to process on some day in the future. History transactions are ones that have already processed. Transactions can be ACH, credit card, Void, Refund, and a host of other types. All of them still fall into either a pending transaction or a History transaction. Also, transactions are tied to Customers, of course, but also tied to the Account as a single customer may have made several transactions using different credit card numbers and different checking accounts but they were all done by the same customer. Therefore, the web services dealing with Transactions you will see each Transaction holds information that may seem like Account information.

TransactionInfo Fields

Field NameRequired (R); Optional (O); Conditional (C); Read Only (RO)Data Type & LengthDescription & Field Values
tran_idCIntUnique number that is assigned by GTB for every transaction entered into the system. If trans_id exists in GTB then that record is updated; otherwise, a new record is created. If a tran_id is provided that doesn't exist then you get an error message.
customer_idRIntGTB generated customer ID, returned in CustomerInfo
account_idRIntGTB generated account ID for the payment account, returned in AccountInfo
tran_typeRIntDetermines type of transaction, i.e. ACH or credit card
  • 1 – ACH
  • 2* – RCK
  • 3* – LockBox (ARC Accounts Receivable Collections: ACH entry code)
  • 4 – Credit Card
  • 5* – POP
  • 6 – Cash

(*) ARC must be MICR read and image of check stored. All of these transaction types have special ACH rules and should not be coded to without help from GTB.

record_typeRIntDescription: Determines whether transaction activity
  • 1 – Debit (ACH only)
  • 2 – Credit (ACH only)
  • 3 – Sale (CC only-Auth and capture in one transaction)
  • 4 – Auth (CC only)
  • 5 – OFFLINE (Force transaction only applied to Credit Card Transactions)
  • 6 – Void (CC only)
  • 7 – CREDIT (Refund-CC only)
  • 8 - AVSOnly (CC only)
  • 13 - Pre-Auth Capture (CC only)
auth_typeCIntIndicates method of ACH transaction authorization. These are ONLY used on ACH transactions. Before implementing any ACH transactions please consult GTB for compliance and NACHA regulations. Auth_type is normally 1, 2 or 3 under most circumstances.

Values:

  • 1 – WRITTEN (PPD)
  • 2 – WEB
  • 3 – TEL
  • 4* – ARC

(*) Consult with GTB for extra compliance issues and NACHA regulations.

occurrenceOStringIndicates presence of any recurring transaction activity. Applicable to both CC and ACH transactions.
  • 1 – Single
  • 2 – Weekly
  • 3 – Bi-Weekly
  • 4 – Monthly
  • 5 – Bi-Monthly
  • 6 – Quarterly
  • 7 – Semi-Annual
  • 8 – Annual
occurrence_numberCIntDetermines the number of times that a particular transaction is to be recurred. Any integer value represents the number of occurrences left for this particular transaction. If not provided and occurrence type is not single, transaction will repeat indefinitely.
amountRFloatThe amount of the transaction.
check_numberCString (50)
tran_dateCString (50)The date the transaction is scheduled to process. Format is YYYYMMDD
notesOString
memoOString
is_corporateOBoolean
po_numberCString (50)Required if is_corporate is TRUE
sales_taxCFloat
sales_tax_typeCIntRequired if sales_tax is provided
order_idOString (50)Unique transaction ID field specified by the merchant. Also used in determining duplicate submissions.
ticket_idCString (50)Only Credit card transactions receive Ticket ID. This Ticket ID is required when submitting a VOID transaction.
customer_intOBoolean
  • 0 - merchant initiated (Default)
  • 1 - customer initiated
processOBooleanSet to true to immediately process a CC transaction sent with today as the transaction date.  If not set to true, transactions will be placed into batch for later processing.  Transactions will not process immediately if management approval is required.  Future-dated transactions will be placed in batch for the date given.
accountROStringMasked account number associated with a transaction
account_typeROStringType of account for the transaction
account_expirationROStringExpiration date of a credit card account
tran_codeROStringNot in a Post, only in a Get as it is the descriptive reason message on credit card transactions. Things like Decline reasons of invalid exp date, etc. They can exist even on Approvals.
tran_statusROStringStatus of a Transaction
invoice_idROStringGTB created. If someone pays an invoice that is generated out of GTB, the invoice number is entered into this field to tie the transaction to the invoice number.
date_createdROString
approvals_neededROIntIs the number of people that need to approve the transaction before it can process.
auth_codeROStringAuthorization code for a credit card transaction
avs_codeROStringCredit card transaction response foraddress verification.
cvv2_codeROStringCredit card transaction response for the CVV security code supplied.
reference_idROStringThe Reference ID is an internally generated number. It will be the order_id if supplied by the merchant. This field is displayed in the reports so that merchant supplied order_id’s would be visible to them.
payment_categoryROStringThese are added to the transaction only from Click-n-pay when the consumer chooses one of the categories specified by the merchant when they schedule the payment.
track1OStringTrack1 data obtained from scanned credit cards. This data is only accepted when creating a transaction and is not returned as part of the TransInfo object
track2OStringTrack2 data obtained from scanned credit cards. This data is only accepted when creating a transaction and is not returned as part of the TransInfo object
check_image_frontOBase64BinaryFor imaged ACH transactions, this is the front image of the check
check_image_backOBase64BinaryFor imaged ACH transactions, this is the back image of the check
custom_fieldsOArrayArray containing CustomField data that should be attached to the transaction.
verify_achOBooleanSet to true to enable.. otherwise, default is off. There are two levels of ACH verification but that is set on the Account Level at gotoBilling. If an ACH transaction receives an Authorization the status sent back will be R, if it is Declined, the status will be D.
lock_statusOInt

The lock status will indicate any type of user or system lock that is current in affect for the transaction:

  • 1 - Transaction is currently being processed
  • 2 - Transaction has been manually held by the merchant

TransactionSettle

TransactionSettle contains transactions that have processed and have either settled funds to the merchant, or have returned for some reason.

TransactionSettle Fields

Field NameRead Only (RO)Data Type & LengthDescription & Field Values
transaction_idROIntUnique number that is assigned by GTB for every transaction entered into the system. This number will match the tran_id field assigned in TransactionInfo.
item_idROStringNo currently used.
funds_directionROStringIdentifies the general direction of the settlement funds. There are two possible values for this field
  • C - Referring to funds being credited out of the merchant's account
  • D - Referring to funds being debited into the merchant's account
category_codeROIntDetermines category of the settlement.
  • 1 – Settlement
  • 2 – Return
reason_codeROIntA sub category code that provides more details about the transaction
  • 1 - 1st presentment
  • 2 - 2nd presentment
  • 3 - 3rd presentment
  • 4 - 1st return
  • 5 - 2nd return
  • 6 - 3rd return
process_dateROIntIndicates the date on which the transaction was originally processed. Given in the format 'YYYMMDD'.
settle_dateROStringIndicates the date on which the transaction was settled or returned. Given in the format 'YYYMMDD'.
customer_accountROStringAccount number of the customer
customer_nameROStringName of the customer
account_numberROStringMasked account number that the transaction has settled or returned against.
check_numberROStringCheck number assigned when the transaction was processed.
amountROFloatAmount of the transaction
return_reasonROStringIf record is a return, this will be the Return Code providing the reason for the return.

CustomField

The CustomField complex type allows the attachment of custom field data to a transaction, provided the custom fields have been confirgured within the GotoBilling application.

CustomField Fields

Field NameRequired (R);Data Type & LengthDescription & Field Values
idRIntThe unique identifier for the custom field as provided by GotoBilling.
valueRIntValue assigned to the custom field.

Web Service Methods

getCustomFields

Description: Returns the current custom fields available.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials

Returns: CustomField[]

deleteAccount

Description: Deletes a payment account with the generated account ID.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
stringaccount_idA string representing an account_id generated by GTB

Returns: String, representing the result of the method

Possible Exception Codes

  • 103.1: Invalid Account ID.
  • 132: Cannot delete this account, there are pending transaction associated with it

deleteTransaction

Description: Deletes a pending transaction given the transaction ID.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
stringtran_idString representing a tran_id generated by GTB

Returns: String, representing the result of the method.

Possible Exception Codes

  • 110: Invalid Transaction ID

getAccounts

Description: Retrieve the Accounts for a specified customer

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
stringcustomer_idA string representing a customer_id generated by GTB

Returns: AccountInfo[], an array of AccountInfo, one for each account associated with the customer.

getAccountById

Description: Get Account information by GTB generated account ID.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
stringidGTB generated account ID

Returns: CustomerInfo

Possible Exception Codes

  • 103.1: Invalid Account ID

getBatchInfo

Description: Retrieve information about the current batch.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials

Returns: BatchInfo

getCustomerById

Description: Get Customer information by GTB generated customer ID.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
stringidGTB generated customer ID

Returns: CustomerInfo

Possible Exception Codes

  • 102: Invalid Customer ID

getCustomers

Description: Gets a list of customers for a merchant.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials

Returns: CustomerInfo[]

getTransaction

(v1.3)

Returns the transaction resource for a given Transaction ID.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
integerTransaction IDID for the desired transaction resource.

Returns: TransactionInfo

Example

$soapClient->getTransaction(array('login'=>'username','pin'=>'password'), 123456)

Possible Exception Codes

  • 110: Invalid transaction ID#

getTransactions

(v1.3)

Returns array of transaction resources matching the specified search criteria.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
arraysearchCriteraArray of search criteria fields and associated filter value. Valid criteria fields:
  • start_date - If not provided will default to today's date
  • end_date - If not provided will default to today's date
  • customer_id
  • account_id
  • po_number
  • amount
  • reference_id

Returns: TransactionInfo[]

Example

$soapClient->getTransactions(array('login'=>'username', 'pin'=>'password'), array('customer_id'=>123456, 'amount'=>1.00))

Possible Exception Codes

  • 130: Invalid search criteria

getPendingTransactions

Description: Gets a list of pending transactions.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
stringstart_dateLower limit of dates to search between for transactions
stringend_dateUpper limit of date to search between for transactions.
stringcustomer_idA customer ID to limit the search results to
stringaccount_idAn account ID to limit the search results to

Returns: TransactionInfo[]

Possible Exception Codes

  • 109: attribute out of order

getTransactionHistory

Description: Gets a historical list of transactions. Parameters:

TypeNameRequiredDescription
MerchantAuthauthRMerchant API access credentials
stringstart_dateRLower limit of dates to search between for transactions
stringend_dateRUpper limit of date to search between for transactions.
stringcustomer_idOA customer ID to limit the search results to
stringaccount_idOAn account ID to limit the search results to

Returns: TransactionInfo[]

Possible Exception Codes

  • 109: attribute out of order

getTransactionReturns

Description: Get merchant transaction returns

Parameters:

TypeNameRequiredDescription
MerchantAuthauthRMerchant API access credentials
stringstart_dateOLower limit of dates to search between for transactions. If no start_date is provided, defaults to first day of current month
stringend_dateOUpper limit of date to search between for transactions. If no end_date is provided, defaults to current day of current month
stringcustomer_idCA customer ID to limit the search results to. Optional, unless account_id is being provided.
stringaccount_idOAn account ID to limit the search results to

Returns: TransactionInfo[]

Special Field Notes: The tran_code field that is returned with each transaction will contain the ReturnCode-ReturnDefinition, example R01-Insufficient Funds. Full List of Return Codes

Possible Exception Codes

  • 109: attribute out of order

getTransactionSettlements

Description: Retrieve a list of all merchant settlements for the given date range. Settlements include any transactions that have settled to the merchants account as well as any returned transactions.

Parameters:

TypeNameRequiredDescription
MerchantAuthauthRMerchant API access credentials
stringstart_dateOLower limit of dates to search between for transactions. If no start_date is provided, defaults to first day of current month
stringend_dateOUpper limit of date to search between for transactions. If no end_date is provided, defaults to current day of current month

Returns: TransactionSettle[]

runBatch

Description: Process all transactions in the batch for the given type of batch run. Options are: ACH, CC, or ALL.

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
runBatchRequestStringString representing the type of batch to run. Options: ACH, CC, or ALL, defaults to ALL if left blank.

Returns: True on successful run, False otherwise.

Possible Exception Codes

  • 122: insufficient privileges

saveAccount

Description: Adds or updates account information Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
AccountInfoaccount_infoAccountInfo complex type containing account information to be saved.

Returns: AccountInfo

Possible Exception Codes

  • 103: Invalid Account ID.
  • 102: Invalid Customer ID
  • 105: Unknown Account Type
  • 108: Invalid card expiration date
  • 106: Invalid account number
  • 129: Invalid card zip code

saveCustomer

Description: Adds or updates customer information

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
CustomerInfocustomer_infoCustomerInfo complex type containing customer information to be saved.

Returns: CustomerInfo

Possible Exception Codes

  • 102: Invalid Customer ID
  • 123: first_name attribute is required for contact display
  • 124: last_name attribute is required for contact display
  • 125: company attribute is required for company display
  • 126: customer_name field is required
  • 126.1: customer_name given is already in use by another customer

saveTransaction

Description: Adds or updates a pending transaction

Parameters:

TypeNameDescription
MerchantAuthauthMerchant API access credentials
TransactionInfotran_infoTransactionInfo complex type containing pending transaction information to be saved.

Returns: TransactionInfo

Possible Exception Codes

  • 102: Invalid customer ID
  • 103: invalid account ID
  • 110: Missing transaction ID
  • 111: authorization type required for ACH transactions
  • 112: A PO number is required for Corporate cards
  • 113: sales tax type is required when submittin a tax amount
  • 114: a ticket ID must be specified to submit a void transaction
  • 115: occurrence type is a required field
  • 116: invalid transaction date
  • 117: Invalid transaction date. Date must be for the current date or the future, past dates are not allowe
  • 118: transaction is locked, you cannot change a locked transaction
  • 119: invalid transaction type
  • 120: invalid record type
  • 121: invalid amount
  • 127: invalid occurrence number
  • 131: invalid lock status given.
  • 133: Velocity Limit has been exceeded.

Errors Codes

This is a list of returned error codes and descriptions of their meaning.

CodeDescription
101You are not authorized to use this service with the credentials you provided. Be sure you have supplied the correct Login and pin.
102Invalid customer ID, either the supplied ID did not exist or was incorrectly formatted
103.1Invalid account ID, either the supplied ID did not exist or was incorrectly formatted
103.2Invalid account ID, either the supplied ID did not exist or was incorrectly formatted
104A routing number is required for ACH

accounts

105The account type supplied is unknown
106Invalid account number
107A valid routing number must be supplied
108Card expiration date was in an invalid format.

Valid format is: MMYY

109An attribute was supplied out of order, make

sure that the parameters are in the correct order and resubmit

110Invalid transaction ID, either the supplied ID

did not exist or was incorrectly formatted

111Auth_type field is required for ACH

transactions.

112A PO number is required for corporate card

transactions

113The sales_tax_type field is required when

submitting sales tax

114A ticket_id must be supplied to void a

transaction.

115An occurrence type is required for all

transactions.

116Invalid transaction date. The date you supplied

was not a valid date string representation.

117Transaction date must be for the current or future date.
118Transaction is locked and cannot be changed at this time.
119Invalid tran_type.
120Invalid record type. Refer to the TransactionInfo complex type for valid values.
121Invalid amount. Amounts must be a valid number.
122You do not have the necessary permissions to

do the requested action.

123The first_name attribute must be supplied for a customer contact.
124The last_name attribute must be supplied for a customer contact.
125The company attribute must be supplied for a company customer.
126Invalid customer_name given.
126.1Invalid customer_name given. Already in use by another customer.
127The occurrence number you specified is invalid.
128Invalid card security code(CVV). The CVV code submitted was invalid, it must be 4 or less numbers.
129Invalid card zip code.
130Invalid search criteria
131Invalid lock status given.
132Cannot delete this account, there are pending transaction associated with it
133Velocity Limit has been exceeded.

Usage Examples

Create a customer and return the GTB assigned Customer ID

<?php
$client = new SoapClient("https://secure.gotobilling.com/gateway/services/soap.php?wsdl");

// merchant auth, required fields
// MAKE SURE TO FILL THIS OUT
$login = '';
$pin = '';

$merchantAuth = array (
    'login' => $login,
    'pin' => $pin
);

// CustomerInfo Fields
$customer_name = 'New Company, Inc'; // string, unique identifier
$display_as = 'company';             // company' or 'contact'
$company = 'new Company';            // string(50), required if above='company'
$first_name = 'John';               // required if above='contact'
$last_name = 'Jones';               // required if above='contact'
$active = '1';                     // boolean, disabled=0, enabled=1
$address1 = '';

// make the array
$customerInfo = array(
'customer_name'=>$customer_name,
'display_as'=>$display_as,
'active'=>$active,
'company'=>$company,
'address1'=>$address1
);

// saveCustomer
// required: MerchantAuth, CustomerInfo
$result = $client->saveCustomer( $merchantAuth, $customerInfo );
print_r($result);
?>

Return Codes

Return CodeDescription
R01Insufficient funds
R02Invalid or Account closed
R03Unknown account
R04Unknown or Account Closed
R05Reserved Never received
R06Return requested by ODFI
R07Authorization revoked
R08Stop payment
R09Uncollected funds
R10Not authorized
R11Check truncation entry return (If ARC or RCK)
R12Branch sold to another DFI
R13ACH Oper. RDFI not qualified to participate
R14Payee deceased
R15Beneficiary deceased
R16Account frozen
R17File record edit criteria
R18ACH Oper. Improper effective entry date
R19ACH Oper. Amount field error
R20Non transaction account (If general ledger)
R21Invalid company identification
R22Invalid individual ID number
R23Credit entry refused by receiver
R24Duplicate entry
R25ACH Oper. Addenda error
R26ACH Oper. Mandatory field error
R27ACH Oper. Trace number error
R28ACH Oper. Routing # check digit error
R29Corp. cust. adviser not auth.
R30ACH Oper. RDFI non-part truncation prob
R31Permissible return entry
R32ACH Oper. RDFI non-settlement
R33Return of XCK entry
R34ACH Oper. - Limited participation DFI
R35ACH Oper. Return of improper debit entry
R36ACH Oper. Return of improper credit entry
R37Source document presented for payment
R39Improper Source Document
R40Return of ENR entry by Fed. Gov. Agency
R41Invalid transaction code
R42Routing #/check digit error
R43Inv. DFI acct. number
R44Inv. Individual ID number
R45Inv. Individual name/company name
R46Inv. Rep. Payee indicator
R47Duplicate enrollment
R50State Law affecting RCK acceptance
R51Item is ineligible (RCK)
R52Stop payment on item (RCK)
R53Item and ACH Entry Presented for Payment
R61ODFI Use. Misrouted Return
R62ODFI Use. Incorrect Trace Number
R63ODFI Use. Incorrect Dollar Amount
R64ODFI Use. Incorrect Individual Identification
R65ODFI Use. Incorrect Transaction Code
R66ODFI Use. Incorrect Company Identification
R67ODFI Use. Duplicate Return
R68ODFI Use. Untimely Return
R69ODFI Use. Multiple Errors
R70ODFI Use. Permission Return Entry Not Accepted
R71Contested. Misrouted Dishonored Return
R72Contested. Untimely Dishonored Return
R73Contested. timely Original Return
R74Contested. Corrected Return
R80Cross-border payment coding error
R81Non-participant in cross-border program
R82Invalid foreign RDFI ID
R83Foreign RDFI unable to settle
R84Entry non processed by OGO (for crossborder program)

Tran Status Codes

Return CodeTypeDescription
YCCTransaction was approved
NCCTransaction was declined
ECC & ACHThere was an error during processing. See tran_code for more information. For ACH transaction see the Tran Code table below.
PACHTransaction is pending batch processing.
ProcessedACHTransaction has been processed and is awaiting settlement.
SettledACHTransaction has successfully settled and funds have been transferred.
ReturnedACHTransaction has been returned.

Tran Code Definitions

CodeDescriptionRemit Status
E00An error has occurred while trying to process this transaction.HOLD
E01Number of transactions exceeds daily velocity limitREMIT
E02Total transaction volume exceeds daily velocity limitREMIT
E03Amount exceeds single transaction velocity limitHOLD
E04The account information provided is invalid.HOLD
E05This transaction is a duplicate of a previously run transaction.HOLD
E06Transaction volume exceeds period velocity limit.REMIT
E07Number of transactions exceeds period velocity limit.REMIT