Reporting
Exact's Reporting APIs enable our partners and customers (merchants) to access all Account (Merchant Onboarding), Transaction, Settlement, Chargeback, Fee and Payout data for their account or portfolio of accounts. Queries are defined by Date/Time range and can be for a single or multiple accounts. Report data is returned either in Json or comma delimited file format. Reports include a expiration date set through the API.
Reporting Lifecycle
Reports are created through the UI or API. The backend then asynchronously runs the queries and returns the data. The UI will reflect when the report is available, or the API can be queried to determine the status and availability. Webhooks are also available to check for status programmatically.
Finished reports can be viewed through the UI and downloaded in CSV or JSON formats through the UI or API.
Creating Reports
To create a report, submit a JSON request as follows:
--url https://api.exactpaysandbox.com/report/transaction \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"parameters": {
"accounts": [
"Merchant Store 35 in Arizona"
],
"start": "2022-01-01T00:00:00.000Z",
"end": "2022-11-15T23:59:59.999Z",
"user": "61a78fe82c3156b0945ef135"
},
"expiresAt": "2030-01-01T00:00:00.000Z"
}
'
Download Reports
Download the report with a JSON request as follows:
--url 'https://api.exactpaysandbox.com/report/61a91d429bf82a2d8e95738f?format=csv' \
--header 'accept: application/json'
More details can be found in the API documentation Reporting section
Report Format
Each report's data fields are listed below. In the downloaded JSON or CSV reports, optional columns without data might not appear.
Settlement Report
Report data includes all transactions that have been settled through a Payment Network (Visa, Mastercard, AMEX, Discover, NACHA) and approved for funding. Funding timelines are defined in the terms of services but generally range 1 - 2 days for credit and debit card and 3 - 4 days for ACH.
Display Name | Field Name | Type | Description |
---|---|---|---|
Transaction Date | createdAt | Date | Creation date of the transaction |
Payment ID | paymentId | string | Unique Internal Payment Identifier created by Exact Payments |
Account Name | account | string | Account Name |
Merchant DBA Name | dbaName | string | Doing Business As Name |
Merchant Number | merchantMID | string | Elavon Merchant ID |
Transaction Type | type | string | 'Card', 'ACH', or 'void'; 'payment' in JSON means Card, 'void' can be either card or ACH (To be improved in the future) |
Settlement Amount | amount | Number | Settlement Amount |
Surcharge Amount | surchargeAmount | Number | Surcharge Amount for Transaction |
Authorization Code | authorization | string | Alphanumeric Code - ACH begins with letter; Credit/Debit begins with number |
Approved | approved | Boolean | If Transation is approved or not |
Refunded | refunded | Boolean | If Transaction is refunded or not |
Settled | settled | Boolean | If Transaction is settled or not |
Settled At | settledAt | Date | Date when Transaction is settled |
Currency Code | currencyCode | string | 3 Character Currency Code (USD) |
Card Holder | paymentMethodDetails.cardholder | string | Name of Card Holder |
Card Number | paymentMethodDetails.last4 | string | Last 4 digits of card |
Expiry Month | paymentMethodDetails.expiryMonth | string | Card expiry month |
Expiry Year | paymentMethodDetails.expiryYear | string | Card expiry year |
Card Type | paymentMethodDetails.cardBrand | string | Card Brand Name (Visa, Mastercard, etc) |
Bank Response Code | bankResponse.code | string | In case of a card transaction it will always be blank; in case of error with ACH it will be a 3 digit code |
Bank Response Message | bankResponse.message | string | In case of a card it will always be blank; in case of error with ACH it will be populated |
AVS Response Code | avsCheck.code | string | Address Verification Service response code |
AVS Response Message | avsCheck.description | string | Text description of AVS check code |
CVC Response Code | cvdCheck.code | string | Credit Card Verification Code |
CVC Response Message | cvdCheck.description | string | Text description of CVC check code |
E-commerce Indicator | ecommerceFlag | string | eg. 5, 6, or 7 |
Customer Reference | customerRef | string | Reference number provided by Merchant |
Reference number | referenceNo | string | optional - Reference number found in chargeback/transaction/settlement report |
Disbursement Report
Report data includes Daily Fees and Payouts for given accounts (Merchants) during the specified period. This data is valuable for partner and merchant reconciliation where bank deposits are matched to settlement (payouts) data and fees assessed.
Display Name | Field Name | Type | Description |
---|---|---|---|
Transaction Date | createdAt | Date | Creation date of the transaction |
Funding ID | id | string | Maps to Dwolla Transfer ID |
Account Name | account | string | Merchant Legal Name |
Funding Type | channel | string | ACH or CARD - The payment method against to which the payout is been made |
Funding Amount | amount | Number | Funding Amount (in Cents) |
Funding Currency | currency | string | Currency of payout |
Funding ID Status | status | string | PENDING or SUCCESS or FAILED - Mass payout will always be a batch, and the entire batch will never fail; each record within the batch will have its status. If something changes, the status will remain PENDING, and after a couple of days, it will return as SUCCESS or FAILED. - If a Batch fails, the system will continue to keep trying |
Account Report
Report data includes the current status of all submitted Account Onboarding Applications for a given user during the specified report range. Status includes Approved
, Declined
, Closed
, Terminated
, or Pending
.
Display Name | Field Name | Type | Description |
---|---|---|---|
Status | status | string | Workflow status (new ; pendingChecks ; checking ; errored ; autoDeclined ; withdrawn ; inProgress ; pended ; autoApproved ; manuallyApproved ; bankBoarding ; bankBoardingError ; Approved ; declined ; autoClosed ; reviewNeeded ; inRiskReview ; terminated ; webhooks ; finished ) |
Status Change Reason | statusChangeReason | string | Reason for the workflow status change |
Status Change Reason Note | statusChangeReasonNotes | string | Notes for the workflow status change |
Organization | organization | string | Name of the parter organization who created this merchant |
Account ID | string | Exact Payments Account ID | |
Elavon Chain ID | string | Elavon Chain Hierarchy ID | |
Merchant Number | merchantMID | string | Elavon Merchant ID |
Account Name | merchant.name | string | Merchant's name |
Merchant DBA Name | merchant.dbaName | string | Merchant's Doing Business As name |
Entity Type | merchant.entityType | string | LLC Or Corp Or Sole prop Or Non - Profit Or Public Corp |
Registration Number | merchant.businessRegistrationNumber | string | Merchant's Business Registration Number |
MCC | merchant.mcc | string | Merchant Category Code |
Business Contact Name | merchant.businessContactName | string | Merchant's Main Business Billing Contact Name |
Business Phone | merchant.telephone | string | Merchant's Telephone number |
Business Billing Email | merchant.email | string | Merchant's Email |
Merchant Address Line 1 | merchant.address.line1 | string | Merchant company's address line 1 |
Merchant Address Line 2 | merchant.address.line2 | string | Merchant company' address line 2 |
Merchant Address City | merchant.address.city | string | Merchant company's city |
Merchant Address Postal Code | merchant.address.postalCode | string | Merchant company's postal code |
Merchant Address Country | merchant.address.country | string | Merchant company's country code (three character) |
Merchant Address Country Subdivision | merchant.address.countrySubdivision | string | Merchant company's state code (two character) |
KYC Results Status | kycResults.status | string | "Know Your Customer" status - e.g. "Passed" |
Established Date | merchant.establishedDate | date | Merchant's company establishment date |
# of Employees | merchant.numberOfEmployees | number | Number of employees in Merchant's company |
Web Site | merchant.onlinePresence | string | Merchant's online web site addres |
merchant.facebook | string | Merchant's Facebook profile URL | |
merchant.twitter | string | Merchant's twitter profile URL | |
merchant.linkedIn | string | Merchant's LinkedIn profile URL | |
Average Ticket | merchant.anticipatedTransAmounts.averageTicketSize | number | Average Payment amount per transaction |
Max Ticket | merchant.anticipatedTransAmounts.maxTicketSize | number | Maximum Payment amount per transaction |
Average Monthly Card Volume | merchant.anticipatedTransAmounts.anticipatedMonthlyVolume | number | Anticipated Monthly total Payment amount |
Average Monthly ACH Volume | merchant.anticipatedTransAmounts.anticipatedMonthlyAchVolume | number | Anticipated Monthly total Payment amount |
Projected Total Processing Volume(next 12 months) | merchant.anticipatedTransAmounts.projectedTotalProcessingVolume | number | Projected processing volume (next 12 months) amount |
Processing Currency | currencyCode | string | Currency of Transaction |
Bank Account Holder Legal Name | merchant. | string | Merchant Bank Account Holder's Legal Name |
Merchant Bank Name | merchant.bankingDetails.bankName | string | Merchant's bank name |
Merchant Routing Number | merchant.bankingDetails.routingNumber | string | Routing number for US/Bank Transit number for Canada |
Merchant DDA Number | merchant.bankingDetails.DDANumber | string | Merchant's bank account number |
Merchant Bank Number | merchant.bankingDetails.bankNumber | string | Bank Institution number for Canada |
Merchant Service Description | merchant.businessProfile.serviceDescription | string | The service or product description rendered by the merchant |
Merchant Currently Accepting Payments | merchant.businessProfile.currentlyAcceptingPayments | string | Whether the merchant is currently accepting the payments or not (Y or N) |
Merchant Acceptance Method Moto | merchant.businessProfile.acceptanceMethods.moto | number | Percentage of Payments via Acceptance Method of Mail/phone |
Merchant Acceptance Method Internet | merchant.businessProfile.acceptanceMethods.internet | number | Percentage of Payments via Acceptance Method of internet/online |
Merchant Acceptance Method Swipe | merchant.businessProfile.acceptanceMethods.swipe | number | Percentage of Payments via Acceptance Method of swipe/pos |
Merchant Acceptance Method Keyed | merchant.businessProfile.acceptanceMethods.keyed | number | Percentage of Payments via Acceptance Method of keyed |
Merchant Recurring Service | merchant.businessProfile.recurringService | string | Whether the merchant is currently offering any recurring services or not (Y or N) |
Merchant Recurring Service Description | merchant.businessProfile.recurringServiceDescription | string | Recurring service description |
Merchant Subscription Service | merchant.businessProfile.recurringService | string | Whether the merchant is currently offering any subscription services or not (Y or N) |
Merchant Subscription Service Description | merchant.businessProfile.recurringServiceDescription | string | Subscription service description |
Surcharging | string | Surcharging supported (Y or N) | |
Merchant Refund Policy Description | merchant.businessProfile.refundPolicyDescription | string | Refund policy of the merchant |
Merchant Payment Time | merchant.businessProfile.paymentTime | string | Payment time |
Merchant Delivery Time Frame | merchant.businessProfile.deliveryTimeFrame | string | Product delivery timeline |
Merchant Principal First Name | merchant.principal.firstName | string | Owner's/Authorized person's first name |
Merchant Principal Last Name | merchant.principal.lastName | string | Owner's/Authorized person's second name |
Merchant Principal Title | merchant.principal.title | string | CEO/President Or Owner/Founder Or VP/Director Or Manager Or Administrator Or Other |
Merchant Principal Telephone | merchant.principal.telephone | string | Owner's/Authorized person's telephone |
Merchant Principal Email | merchant.principal.email | string | Owner's/Authorized person's email |
Merchant Principal Date of Birth | merchant.principal.dateOfBirth | date | Owner's/Authorized person's Date of Birth |
Merchant Principal Drivers License | merchant.principal.driversLicense | string | Owner's/Authorized person's Driving License number |
Merchant Principal Drivers License State | merchant.principal.driversLicenseState | string | DL issue state |
Merchant Principal Drivers License Country | merchant.principal.driversLicenseCountry | string | DL issue country |
Merchant Principal SSN | merchant.principal.ssn | string | Owner's/Authorized person's Social Security Number or Social Insurance Number(SIN) (last 4) |
Merchant Principal SSN State | merchant.principal.ssnState | string | SSN issue state |
Merchant Principal SSN Country | merchant.principal.ssnCountry | string | SSN issue country |
Merchant Principal Nationality | merchant.principal.nationaliity | string | Owner's/Authorized person's Nationality |
Merchant Principal Percent of Ownership | merchant.principal.percentOfOwnership | number | Owner's/Authorized person's % of ownership in the businessl |
Merchant Principal Line 1 | merchant.principal.address.line1 | string | Owner's/Authorized person's address line 1 |
Merchant Principal Line 2 | merchant.principal.address.line2 | string | Owner's/Authorized person's address line 2 |
Merchant Principal Address City | merchant.principal.address.city | string | Owner's/Authorized person's city |
Merchant Principal Address Postal Code | merchant.principal.address.postalCode | string | Owner's/Authorized person's postal code |
Merchant Principal Address Country | merchant.principal.address.country | string | Owner's/Authorized person's country (Three Character Code) |
Merchant Principal Address State | merchant.principal.address.countrySubdivision | string | Owner's/Authorized person's State/Province (Two character code) |
Created At | createdAt | date | Onboarding created time |
Transaction Report
Report data includes all transactions (Payments API) or events processed by a given user during the specified report range whether approved or declined.
Display Name | Field Name | Value Type | Description |
---|---|---|---|
Created At | createdAt | string | Transaction creation date |
Payment ID | paymentId | string | Unique Internal Payment Identifier created by Exact Payments |
Account Name | account | string | Account Name |
Merchant DBA Name | dbaName | string | Doing Business As Name |
Merchant Number | merchantMID | string | Elavon Merchant ID |
Transaction Type | paymentType | string | "Card", "ACH", or "void" - void can apply to either type, we will provide better typing in the next update |
Amount | amount | Number (2 decimal) | Settlement Amount (eg. 28.00) |
Surcharge Amount | surchargeAmount | Number (2 decimal) | Surcharge Amount (eg. 28.00) |
Authorization Code | authorization | string | Alphanumeric Code - ACH begins with letter; Credit/Debit begins with number |
Approved | approved | Boolean | If Transaction is approved or not |
Captured | captured | Boolean | True If hold has been paid, It means the funds were captured at the time of processing; i.e., not just an authorization |
Capture Details | captureDetails | Object {array[string]; remaining(int)) | Contains a list of captured Payment IDs (or the Object in JSON) |
Refunded | refunded | Boolean | If transaction is refunded or not |
Refund Details | refundDetails | Object {array[string]; remaining(int)) | Contains a list of refunded Payment IDs (or the Object in JSON) |
Voided | voided | Boolean | True if Transaction was voided, False if not |
Settled | settled | Boolean | True if Transaction has been settled, False if not |
Settled At | settledAt | string | When the transaction was settled |
Currency Code | currencyCode | string | 3 Character Currency Code (eg. USD) |
Card Holder | paymentMethodDetails.cardholder | string | Name of Card Holder |
Card Number | paymentMethodDetails.last4 | string | Last 4 digits of Card Number |
Expiry Month | paymentMethodDetails.expiryMonth | string | Card Expiration Month |
Expiry Year | paymentMethodDetails.expiryYear | string | Card Expiration Year |
Card Type | paymentMethodDetails.cardBrand | string | Card Brand Name (Visa, Mastercard, etc) |
Bank Response Code | bankResponse.code | string | In case of a card transaction it will always be blank; in case of error with ACH it will be a 3 digit code |
Bank Response Message | bankResponse.message | string | In case of a card it will always be blank; in case of error with ACH it will be populated |
Exact Response Code | exactResponse.code | string | Response Code generated by Exact |
Exact Response Message | exactResponse.message | string | Response Message related to Exact Response Code |
AVS Response Code | paymentMethodDetails.avsCheck.code | string | Address Verification service check |
AVS Response Message | paymentMethodDetails.avsCheck.description | string | Text description of AVS check code |
CVC Response Code | paymentMethodDetails.cvdCheck.code | string | Credit Card Verification Code |
CVC Response Message | paymentMethodDetails.cvdCheck.description | string | Any CVD description if provided |
E-commerce Indicator | options.ecommerceFlag | string | Passed by merchant with initial transaction eg. 5, 6, 7 or other number |
Customer Reference | customerReference | string | Customer supplied reference |
Reference Number | ReferenceNo | string | Customer supplied reference |
Chargeback Report
Report data contains all fields needed for the merchant to respond including the amount, location, reason codes and descriptions and deadlines to any Chargeback (credit/debit card) posted during the specified report range.
Display Name | Field Name | Type | Description |
---|---|---|---|
Chargeback Date | paymentDate | string | Date when the chargeback was deducted from our receivables |
Exact Payment ID | roctext | string | Unique Internal Payment Identifier created by Exact Payments (also "account") |
Account Name | account | string | Account Name |
Merchant DBA Name | dbaName | string | Doing Business As Name |
Merchant Number | merchantMID | string | Elavon Merchant ID |
Amount | amount | Number (2 decimal) | Transaction Amount (eg. 28.00) |
Surcharge Amount | surchgAmount | Number (2 decimal) | Part of the original transaction - see Settlement Report |
Convenience Fee Amt | convnceAmt | Number (2 decimal) | Part of the original transaction |
Card Number | cardNo | string | Masked 15 digit card number |
Card Type | cardPlan | string | Type of Credit Plan |
Transaction Date | transactionDate | string | Date of the Transaction |
Settlement Date | settlementDate | string | Date of Transaction Settlement |
Currency Code | currencyCode | string | 3 character curency code |
ChargeBack Reason Desc | chgbkRsnDesc | string | Reason for the chargeback |
Created At | createdAt | date | Chargeback record creation date |
Updated At | updatedAt | date | Chargeback record updated date |
ACH Credit Report
The ACH Credit Report contains data relevant to this specific transaction type including current status or reject code and both the unique Payment ID and the associated original debit transaction ID if applicable.
Display Name | Field Name | Type | Description |
---|---|---|---|
Created At | createdAt | Date | ACH Credit record creation date |
Exact Payment ID | paymentId | string | Unique Internal Payment Identifier created by Exact Payments |
Account Name | account | string | Account Name |
Merchant DBA Name | dbaName | string | Doing Business As Name |
Merchant Number | merchantMID | string | Elavon Merchant ID |
Transaction Type | type | string | "ach-credit" |
Amount | amount | Number (2 decimal) | Settlement Amount (eg. 28.00) |
Authorization Code | authorization | string | Alphanumeric Code - ACH begins with letter |
Bank Response Code | bankResponse:code | string | ACH errors display a 3 digit code |
Bank Response Message | bankResponse:message | string | ACH errors display a message |
Failure Reason Code | failureReason.code | string | Alphanumeric Code - ACH begins with letter |
Failure Reason Description | failureReason.description | string | A brief reason for the failure |
Failure Reason Explanation | failureReason.explanation | string | A detailed description for the failure |
ACH Debit Payment ID | achDebitPaymentId | string | Unique Internal Payment Identifier created by Exact Payments from the original ACH Debit payment |
Customer Reference | customerRef | string | Customer supplied reference |
Merchant Funding Report
The MFR allows merchants to determine which transactions are included in amounts we fund (deposit) into their bank account. This new report allows merchants to review and validate that approved sale transactions, as well as refunds and chargebacks, are funded correctly into their deposit account by Exact. Merchants may review and validate funding amounts on any frequency be it daily, weekly, monthly, or any custom date range. The MFR report is accessible to partners to pull at the individual merchant level.
Display Name | Field Name | Type | Description |
---|---|---|---|
Funding ID | fundingID | Date | Unique ID created for this funding event |
Funding Date | fundingDate | Date | funding record creation date |
Account Name | account | string | Account Name |
Merchant DBA Name | dbaName | string | Doing Business As Name |
Merchant Number | merchantMID | string | Elavon Merchant ID |
Exact Payment ID | paymentId | string | Unique Internal Payment Identifier created by Exact Payments |
Transaction Type | paymentMethod | string | 'Card', 'ACH', or 'void'; 'payment' in JSON means Card, 'void' can be either card or ACH (To be improved in the future) |
Amount | amount | Number (2 decimal) | Settlement Amount (eg. 28.00) |
Authorization Code | authorizationCode | string | Alphanumeric Code - ACH begins with letter; Credit/Debit begins with number |
Card Type | cardType | string | Card Brand Name (Visa, Mastercard, etc) |
Card Number | cardNumber | string | Last 4 digits of Card Number |
Refunded | refunded | Boolean | If transaction is refunded or not |
Chargeback | chargeback | Boolean | If transaction is a chargeback or not |
Transaction Date | transactionDate | string | Transaction creation date |
Reference Number | ReferenceNumber | string | Customer supplied reference |