Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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.

...

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

Version History

1.3 **DEPRECATED**

...

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

MerchantAuth Fields

Field Name
Required
Optional (O); Conditional
Read Only
(
RO
C);Data Type & LengthDescription & Field Values

**DEPRECATED** login

RO
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

RO
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. 
source
access_
description
keyO or Cstring
Description of the
Provide 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 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

...

the front image of the checkArray containing CustomField data that should be attached to the transaction
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 for the current date, and approvals are not neededsent 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 objectas part of the TransInfo object
check_image_frontOBase64BinaryFor imaged ACH transactions, this is the front image of the check
check_image_frontbackObase64BinaryBase64BinaryFor 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
check_image_backObase64BinaryFor imaged ACH transactions, this is the back image of the check
custom_fieldsOarrayset 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_statusOintInt

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

...

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.
amountROfloatFloatAmount of the transaction
return_reasonROStringIf record is a return, this will be the Return Code providing the reason for the return.

...

CustomField Fields

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

...

  • 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

...