To support your record keeping and analytics requirements, Vesta generates a daily data file and posts the file to a directory on our SFTP server that is only accessible by your company. You are responsible for downloading daily data feed each day.
The sections below define the file format and the fields that are included in the file.
The daily data feed is a CSV file that adheres to the RFC 4180 specification, with one exception: the file does not have the same number of fields on each line. However, it does have the same number of fields for each line in each section of the file.
The list below describes the format of the daily data feed:
- Quotes - Per the RFC 4180 document published on October 2005, on page 3, sections 6 and 7, fields containing line breaks (CRLF), double quotes, and commas will be enclosed in double quotes. A double quote appearing inside a field will be escaped by preceding it with another double quote.
- Headers - The first line of the file is the Header record. The Header record is not the standard field naming header per the specification. It is a unique record that provides information about the file as a batch.
- Footers - The last line of the file is the Footer record. It contains record checksum data that will be used to validate the contents of the file.
- Detail Records - Each line of the Detail section of the file should contain the same number of fields throughout the section. Any source values that are missing or null will translate to an empty field in a line. For example, the AddressLine2 field is optional and frequently does not have a value in the source data. A record with a missing AddressLine2 field would look like the following: 12 Main St,,Portland,OR,97205,US.
- Currency Values - Currency values are in extended money format (four decimal places) and do not contain the currency symbol. For example, $45.00 would be 45.0000.
- Delimeters - All records are Windows delimited. Each line ends with a carriage return and line feed (ASCII(13) + ASCII(10)).
The daily data feed uses the following naming convention:
In the example above, NNNNNNNNNN is the unique 10-digit file ID. The file ID value is padded with leading zeros to use all ten characters. YYYYMMDD is the creation date of the file.
The sections below define the fields included in the daily data feed.
The Header record is the first line of the file. The Header record describes the record type and indicates the date and time the record was created.
|RecordType||String||1||Record type indicator will be “H” for the Header record.|
|FileID||Integer||10||This is the unique identifier for the data feed file and is generated by Vesta for each data feed. This should be referenced whenever contacting Support or troubleshooting is required for a feed.|
|FileDateAndTime||String||14||This is the date and time the file was created, in the format YYYYMMDDHHMMSS.|
The Detail record is the primary transaction record representing the overarching payment information.
|RecordType||String||1||Record type indicator will be “D” for Detail records.|
|DetailRecordCount||Integer||10||An incrementing integer that identifies a specific Detail record. Begins at 1 and increments to the last Detail record in the file.|
|PaymentID||String||12||The unique ID generated for every payment.|
|TransactionID||String||36||This is a merchant-generated ID provided on each payment request into our platform.|
|Amount||Numeric||12||The amount of funds authorized/the payment taken from the customer (e.g. 10.0000).|
|PaymentType||Integer||2||A code representing the type of payment:
* 1 - Card not present payment
* 2 - Card not present refund
* 3 - Guaranteed payment chargeback
* 12 - Card not present voided payment
* 18 - Non-Guaranteed chargeback
* 19 - Non-Guaranteed chargeback fee
* 20 - Non-Guaranteed chargeback reversal
* 30 - Subscription fee
* 31 - Guaranteed payment chargeback reversal
|RevenueDateTime||String||19||The date the order was fulfilled and the corresponding payment is marked “ready for settlement”; displayed value based on PST time zone: YYYY-MM-DD HH:MM:SS.|
|PartnerRevenueDate||String||10||A client-specified 24-hour period. The beginning and end of the revenue day may be any hour in any time zone: YYYY-MM-DD.|
|PaymentStatus||Integer||3||A code indicating the status of the payment:
* 1 - Failed - The bank denied the payment.
* 3 - Denied - Fraud denied. This can occur if our platform has determined this transaction is too risky to process, or the customer is not reliable.
* 5 - Authorized - Transaction was authorized.
* 6 - Failed payment - Authorization communication error. The transaction did not complete.
* 10 - Successful payment - Payment has completed successfully.
* 51 - Pre-Auth complete - Pre-Authorization completed.
* 52 - Post-Auth complete - Post-Authorization completed.
* 61 - Pre-Auth failure - Pre-Authorization communication error. The transaction did not complete.
* 62 - Post-Auth failure - Post-Authorization communication error. The transaction did not complete.
|PaymentStatusReasonCode||String||4||Returns the decision code from the decision engine when the transaction is denied or pended:
* 1701 - Score exceeds risk system thresholds.
* 1702 - Insufficient information for risk system to approve.
* 1703 - Insufficient checking account history.
* 1704 - Suspended account.
* 1705 - Payment method type is not accepted.
* 1706 - Duplicate transaction.
* 1707 - Other payment(s) still in process.
* 1708 - SSN and/or address did not pass bureau validation.
* 1709 - Exceeds check amount limit.
* 1710 - High risk based upon checking account history (EWS).
* 1711 - Declined due to ACH regulations.
* 1712 - Information provided does not match what is on file at bank.
* 1713 - Information on file does not match what is on file.
* 1714 - Try again with a new debit/credit card.
* 1715 - Phone verification requested.
* 1716 - Additional information needed for verification.
|Fee - %||Numeric||12||The fee charged based on a percent of the transaction amount.|
|Fee - Transaction||Numeric||12||The fee charged per transaction, including if there is a required minimum fee.|
|Fee - Subscription||Numeric||12||The monthly/periodic subscription fee charged.|
|MerchantRoutingID||String||30||The key used to determine which merchant account to use at the acquirer.|
|RiskProbabilityIndex||Integer||1||Indicates the probability of risk associated with taking the requested payment:
* 1 - High Risk
* 2 - Mild Risk
* 3 - Average
* 4 - Safe
* 5 - Very Safe
|RiskScore||Integer||3||The risk score associated with the transaction. Valid values are 0-100; the higher the score, the greater the fraud risk associated with the payment. The score is only presented if the Fraud Score feature is enabled.|
|IsPaymentGuaranteeable||Boolean||1||Indicates if the payment can be guaranteed by our platform:
* 0 - Payment cannot be guaranteed
* 1 - Payment can be guaranteed
|PaymentGuaranteeStatus||Integer||1||Indicates if the payment was guaranteed:
* 0 - Guaranteed Payment
* 1 - Non-Guaranteed Payment
|OriginalPaymentID||String||12||For a reversal payment, the PaymentID issued on the transaction that is being reversed.|
|OriginalTransactionID||String||36||For a reversal payment, the TransactionID issued on the transaction that is being reversed.|
|PaymentDescriptor||String||128||A text description of the payment for tracking purposes used to identify the transaction if you need to contact Support.|
|PartnerCustomerKey||String||64||Any unique data element the merchant wants to use for identifying the customer (e.g., billing account number).|
|SalesTax||Numeric||12||The sales tax provided in the payment API to support qualification L2 interchange.|
|SurchargeAmount||Numeric||12||For merchants passing surcharge to the acquirer, this value tracks the amount sent to the acquirer.|
|AVSResultCode||Integer||4||The processor-mapped value from the Address Verification Service (AVS) check performed by the acquirer.|
|CVVResultCode||Integer||4||The processor-translated response from the acquirer for the Card Verification Value (CVV) response:
* 15 - CVV invalid
* 17 - CVV match
* 19 - CVV not matched
* 20 - CVV check not processed
* 22 - CVV should be available (was not supplied)
* 23 - CVV not supported by issuer
* 45 - CVV not sent.
|AuthResultCode||Integer||3||The processor-mapped value for the authorization code provided by the acquirer.|
|AcquirerCode||Integer||2||Indicates the acquirer that processed the payment:
* 1 - Chase Paymentech
* 2 - First Data
* 3 - AIB
* 4 -Vantiv
* 5 - RapidConnectCNP
* 6 - Synthesis
* 7 - TSYS
* 8 - ProPay
* 9 - Allpago
* 1000 - Braintree
* 1001 - TrustCommerce
* 1002 - Authorize.Net
* 1003 - Wells Fargo
* 1004 - PayKings
* 1005 - Credibanco
* 1006 - Card Connect
* 1007 - Stripe
|CardTypeCD||Integer||2||Indicates the card type associated with the payment:
* 1 - AAFEES
* 3 - American Express
* 4 - Visa
* 5 - MasterCard
* 6 - Discover
* 7 - Diners Club
* 9 - Carte Blanche
* 25 - Dankort
* 27 - Electron
* 34 - Lasercard
* 35 - Maestro
* 98 - Unknown
|BankRoutingNumber||Numeric||9||For ACH payments, the routing number used to process the payment.|
|POSEntryMode||String||3||For point of sale (POS) payments, the POSEntryMode that was sent by the merchant application to the processor at the time of payment processing.|
|TerminalID||String||8||For point of sale (POS) payments, the TerminalID that was sent by the merchant application to the processor at the time of payment processing.|
|POSManualAuthorization||String||8||For point of sale (POS) payments that were manually authorized via the acquirer phone line. Contains the OriginalAuthorizationID sent by the merchant application to the processor at the time of payment processing.|
|AcquirerApprovalCode||String||30||The approval code returned by the acquirer on the payment request.|
|AcquirerAVSResponseCode||String||6||The value from the Address Verification Service (AVS) check returned from the acquirer.|
|AcquirerCVVResponseCode||String||6||The value from the Card Verification Value (CVV) check returned by the acquirer.|
|AcquirerResponseCode||String||3||The value for the authorization code returned by the acquirer.|
|AcquirerResponseCodeText||String||255||The acquirer-provided text associated with the acquirer response code.|
The Footer record is the last line of the file. The Footer record contains record checksum data used to validate the contents of the file.
|RecordType||String||1||Record type indicator will be “F” for Footer records.|
|RecordCount||Integer||10||The number of Detail records contained in this file.|
|AmountCheckSum||Numeric||20||An amount used as a checksum for the file. It is obtained by summing the absolute value of the Detail record Amount field.|