1STMILE MIDDLEWARE INTEGRATION GUIDE - VERSION 1.5.21 JUNE 17, 2021 - ONLINE MERCHANT CENTER

Page created by Jennifer Henry
 
CONTINUE READING
1STMILE MIDDLEWARE INTEGRATION GUIDE - VERSION 1.5.21 JUNE 17, 2021 - ONLINE MERCHANT CENTER
1stMILE™ MiddleWare
    Integration Guide
                        Version 1.5.21
                        June 17, 2021

                                    1stMILE, LLC
                     8383 158th Ave NE, Suite 100
                           Redmond, WA 98052

                                 www.1stmile.com

          © 2021 1stMILE, LLC. All rights reserved.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

Copyright
This document is provided “as-is”. Information and views expressed in this document, including URL and other
Internet Web site references, may change without notice. You bear the risk of using it.

Some examples depicted herein are provided for illustration only and are fictitious. No real association or
connection is intended or should be inferred.

This document does not provide you with any legal rights to any intellectual property in 1stMILE product. You
may use this document for your internal, reference purposes.

© 2021 1stMILE, LLC. All rights reserved.

All trademarks are property of their respective owners.

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 1 of 93                                                         www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                                                                 Version 1.5.21 – June 17, 2021

Contents
Copyright ...................................................................................................................................................................................... 1
Contents........................................................................................................................................................................................ 2
Overview ....................................................................................................................................................................................... 5
Requirements .............................................................................................................................................................................. 5
Installation.................................................................................................................................................................................... 5
    Library-Only ............................................................................................................................................................................ 5
    ATSSecurePostUICmd ......................................................................................................................................................... 5
    Client Application ................................................................................................................................................................. 5
    Multi-Merchant Client Application ................................................................................................................................ 5
    SecurePost Listener.............................................................................................................................................................. 6
    RDP............................................................................................................................................................................................. 6
32-bit/64-bit ................................................................................................................................................................................ 6
ISV Certification.......................................................................................................................................................................... 6
Merchant Configuration ......................................................................................................................................................... 6
Credit Facility............................................................................................................................................................................... 7
Text to Pay.................................................................................................................................................................................... 7
Text to Authorize ....................................................................................................................................................................... 7
Begin Accepting Payments .................................................................................................................................................... 7
1stMILE MiddleWare Reference........................................................................................................................................... 9
    Data Elements ........................................................................................................................................................................ 9
              TransactionType ......................................................................................................................................................... 9
              Isv .................................................................................................................................................................................. 10
              Merchant .................................................................................................................................................................... 11
              Options ....................................................................................................................................................................... 11
              Transaction ................................................................................................................................................................ 11
              Contact ....................................................................................................................................................................... 11
              Address ....................................................................................................................................................................... 12
              Applicant .................................................................................................................................................................... 12
              FleetCard .................................................................................................................................................................... 13
              Invoice ......................................................................................................................................................................... 13
              LineItem...................................................................................................................................................................... 14

  Copyright © 2021 1stMILE, LLC                                               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
  Page 2 of 93                                                                                         www.1stMILE.com • (425) 497-9909

                    Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                                                           Version 1.5.21 – June 17, 2021

          PhotoID....................................................................................................................................................................... 16
          Recurring.................................................................................................................................................................... 17
          Report ......................................................................................................................................................................... 18
          ReturnImage ............................................................................................................................................................. 18
          Vehicle......................................................................................................................................................................... 20
 Transaction Types .............................................................................................................................................................. 20
          Configuration ........................................................................................................................................................... 20
          Sale/Auth ................................................................................................................................................................... 21
          Auth Reversal ........................................................................................................................................................... 26
          Post .............................................................................................................................................................................. 27
          Refund......................................................................................................................................................................... 29
          Credit ........................................................................................................................................................................... 30
          Void .............................................................................................................................................................................. 32
          Account Lookup ...................................................................................................................................................... 33
          Account Payment.................................................................................................................................................... 34
          Account Payment Reversal ................................................................................................................................. 35
          Check Sale ................................................................................................................................................................. 36
          Check Refund ........................................................................................................................................................... 39
          Check Void ................................................................................................................................................................ 41
          Credit Application................................................................................................................................................... 42
          Synchrony Car Care QuickScreen ..................................................................................................................... 43
          Synchrony Car Care Credit Decision ............................................................................................................... 44
          Synchrony Car Care Accept/Decline QuickScreen ..................................................................................... 45
          Token Add ................................................................................................................................................................. 46
          Token Lookup .......................................................................................................................................................... 47
          Text to Pay ................................................................................................................................................................. 47
          Text to Authorize .................................................................................................................................................... 49
          Declined Services .................................................................................................................................................... 51
          Invoice Upload ......................................................................................................................................................... 53
          Gift Card Activation................................................................................................................................................ 54
          Gift Card Add Value ............................................................................................................................................... 55
          Gift Card Balance Inquiry ..................................................................................................................................... 55

Copyright © 2021 1stMILE, LLC                                           8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
Page 3 of 93                                                                                     www.1stMILE.com • (425) 497-9909

               Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                                                               Version 1.5.21 – June 17, 2021

              Gift Card Deactivation........................................................................................................................................... 56
              Retrieve Merchant Info ......................................................................................................................................... 57
              Transaction Search ................................................................................................................................................. 57
              End of Day Report .................................................................................................................................................. 58
              Credit App Report .................................................................................................................................................. 59
              Signature Capture .................................................................................................................................................. 60
              Terminal Prompt ..................................................................................................................................................... 61
              About........................................................................................................................................................................... 61
    Result...................................................................................................................................................................................... 62
Appendix A: Data Flow Diagram ...................................................................................................................................... 67
Appendix B: Account Types ................................................................................................................................................ 68
Appendix C: EMV Result Elements................................................................................................................................... 69
Appendix D: Line Item Product Codes ........................................................................................................................... 70
Appendix E: Fleet Card Service Codes ............................................................................................................................ 78
Appendix F: Fleet Measurement Codes ......................................................................................................................... 78
Appendix G: Migrate from legacy parameters to JSON API .................................................................................. 79
    Create Transaction Objects ............................................................................................................................................ 79
    Examples ............................................................................................................................................................................... 80
    Result Object ....................................................................................................................................................................... 86

  Copyright © 2021 1stMILE, LLC                                             8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
  Page 4 of 93                                                                                       www.1stMILE.com • (425) 497-9909

                   Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

Overview
1stMILE™ MiddeWare is a PA-DSS certified Windows library that provides an easy way to integrate
your custom application with the Merchant Partners Payment Gateway. It offers a powerful plug-in
payment experience for your application, giving your merchants the ability to accept EMV, swipe, and
private label payments. 1stMILE also provides capabilities for tokenized and recurring transactions as
well as check processing. Payment acceptance channels include card present, card not present, and
tokenized.
1stMILE provides hardware integration to several terminals, signature pads, and check scanners,
alleviating the necessary expertise, development, and certification required for communicating with
hardware devices. 1stMILE also relieves PCI requirements pertaining to cardholder data access and
retention.

Requirements
1stMILE MiddleWare is a .NET object (including support for COM interoperability) capable of running
on Windows 8.1 or later versions. 1stMILE MiddleWare requires .NET Framework 4.5.2.

Installation
There are several ways to integrate with 1stMILE MiddleWare.

Library-Only
The library-only installer, ATSSecurePostUILib, will install only the files necessary for integration. This
installer can be bundled in your own software installer or run separately by the customer.

ATSSecurePostUICmd
ATSSecurePostUICmd is a Windows command-line application that provides access to all the features
of the 1stMILE MiddleWare library. It allows users to process transactions and perform all other
capabilities provided by the 1stMILE MiddleWare library.

Client Application
ATSSecurePostUI_NET is a simple Windows application with an interactive graphical use interface. It
allows users to process transactions and perform all other capabilities provided by the 1stMILE
MiddleWare library.

Multi-Merchant Client Application
FirstMileClient is a Windows application that provides access to all the features of the 1stMILE
MiddleWare library. It allows configuring multiple merchants within the UI, switching between the
merchants, and executing transactions for the selected merchant.

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 5 of 93                                                         www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

SecurePost Listener
The SecurePost Listener application is a light-weight web server intended to run on an intranet. It
accepts HTTP requests on the workstation and launches 1stMILE based on the request. A typical
usage scenario is for a user of a custom application on an intranet server to kick off an action in the
application that sends an HTTP request to the user’s computer on which SecurePost Listener has been
installed. When SecurePost Listener receives the request, it displays the appropriate transaction
processing dialog and upon completion responds to the server request with the transaction results.

RDP
1stMILE RDP provides both Client and Server components to use 1stMILE in an RDP environment. Like
SecurePost Listener, 1stMILE RDP allows a user running an application on an RDP server to trigger a
request on the client PC where the card reader is attached, returning the transaction results back to
the server application.

32-bit/64-bit
Due to hardware manufacturer limitations, 1stMILE 32-bit and 64-bit binaries support different
hardware integrations. For more information and a list of components available on each platform,
please refer to developer.1stmile.com.

ISV Certification
To use 1stMILE MiddleWare, you must certify your integration with Merchant Partners and obtain an
ISV key. Please contact Merchant Partners ISV Integration Services for more information:
        Integrator Relationship Management
        IRMSupport@MerchantPartners.com

Merchant Configuration
A merchant is uniquely identified in the Merchant Partners Payment Gateway with an Account ID, an
optional Sub ID, and a Merchant PIN. The Configuration API allows the merchant to configure these
settings to be stored locally. By storing the merchant settings locally, your app does not need to send
the merchant information for every transaction. All API calls allow you to override the default merchant
information. See the Configuration API for more information.

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 6 of 93                                                         www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

Credit Facility
The 1stMILE Credit Facility allows your merchants to convert low value credit card transactions to high
value Automotive Private Label Card Transactions to help customers fund their repairs, offers High
Ticket Financing, and Non-Prime Financing.

Text to Pay
The 1stMILE Text to Pay feature allows a merchant to initiate a sale but instead of requesting a payment
card from the customer, a Pay Link can be sent to the customer via text allowing the customer to pay
the invoice online. In addition to requiring the customer’s mobile phone number, an invoice in PDF
format may be included for the customer to view.

Text to Authorize
The 1stMILE Text to Authorize feature allows a merchant to send a quote to a customer for the
customer’s authorization. An Authorize Link requires the customer’s mobile phone number and a PDF
detailing the work to be performed. The customer provides authorization by reviewing the quote and
signing online.

Begin Accepting Payments
You can begin accepting payments in your application by using FirstMile, a class designed to make
building your application's checkout flow as easy as possible. You can start using 1stMILE MiddleWare
by importing FirstMile into the class where you require the payment form to be shown.
To start a transaction, you need to instantiate an FirstMile object, subscribe to events (optional), then
call a method to show the default payment form (e.g., in a button action handler):

// build the parameters
string requestJson = @"{
    'transactionType': 'Sale',
    'transaction': {
      'amount': 1.23
    }
}";

// instantiate the FirstMile object
var firstMile = new FirstMile();

// call the process method
var responseJson = firstMile.Process(requestJson);

// handle the final response

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 7 of 93                                                         www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

FirstMileResponse response =
JsonConvert.DeserializeObject(responseJson);

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 8 of 93                                                         www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

1stMILE MiddleWare Reference
The FirstMile class provides a single method:

        string Process(string jsonRequest);

The jsonRequest parameter is a JSON string that consists of elements and objects. The
transactionType element tells 1stMILE what you want to do and determines what other elements are
supported in the jsonRequest object.

Data Elements
The following sections define the data elements that comprise the JSON request element for the
process method.

TransactionType
The transactionType element is a string that identifies the operation you are requesting from 1stMILE.
You can perform the following operations with 1stMILE:
   •    Configuration
   •    Card Processing
            o   Sale
            o   Auth
            o   Auth Reversal
            o   Post
            o   Refund
            o   Credit
            o   Void
            o   Account Lookup
            o   Account Payment
            o   Account Payment Reversal
   •    Check Processing
            o   Sale
            o   Refund
            o   Void
   •    Credit Application
            o   Credit App
            o   Checkout Open Loans
            o   Additional Synchrony Car Care operations:
                     ▪    QuickScreen
                     ▪    Credit Decision

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 9 of 93                                                         www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

                        ▪    Accept Quick Screen
                        ▪    Decline Quick Screen
   •     Gift Card
               o   Activation
               o   Add Value
               o   Balance Inquiry
               o   Deactivation
   •     Reporting
               o   Transaction Search
               o   End of Day Report
               o   Credit App Report
   •     Text to Pay
   •     Text to Authorize
   •     Declined Services
   •     Invoice Upload
   •     Tokenization
   •     Signature Capture
   •     Terminal Prompt
   •     About
See the Transaction Types section for more information.

Isv
The isv object identifies the ISV integration and allows you to associate user/workstation information
with a transaction. This object should be included in every request.
 Name                                        Type         Description

 isv                                         object       Container for ISV information.

       key                                   string       Alphanumeric value that identifies the ISV. Merchant
                                                          Partners provides this value for every ISV integration.
       version                               string       This is the version of your software. Useful for
                                                          troubleshooting.
       user                                  string       If your application tracks the user associated with the
                                                          session, you can include the name with the transaction.
       nameOfStation                         string       If your application tracks the workstation associated
                                                          with the session, you can include the name with
                                                          transaction.

 Copyright © 2021 1stMILE, LLC                  8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 10 of 93                                                           www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

Merchant
The merchant object defines the Merchant Partners Payment Gateway account to use for the request,
as well as merchant details for printed receipts.
 Name                                     Type         Description

 merchant                                 object       Container for merchant information.

    acctID                                string       5-character alphanumeric value, provided by Merchant
                                                       Partners, that identifies the merchant.
    subID                                 string       5-character alphanumeric value, provided by Merchant
                                                       Partners, that identifies the Sub ID for the merchant.
    merchantPIN                           string       The Merchant PIN value provided by Merchant
                                                       Partners.
    merchantName                          string       Specifies the Merchant name to be printed on the first
                                                       line of the receipt.
    merchantAddress                       string       Specifies the Merchant address to be printed on the
                                                       second line of the receipt.
    merchantCityStateZip                  string       Specifies the Merchant city, state and zip to be printed
                                                       on the third line of the receipt.
    merchantPhone                         string       Specifies the Merchant phone number to be printed on
                                                       the fourth line of the receipt.
    receiptText                           string       Specifies additional text to print on the bottom of the
                                                       receipt (up to 1024 characters).

Options
The options object allows you to control the presentation and behavior of 1stMILE for a request. The
elements contained in this object may only apply to some transaction types. Refer to Transaction
Types for more information.

Transaction
The transaction object allows you to specify information for a transaction. Refer to Transaction Types
for more information.

Contact
The contact object allows you to specify contact information for a transaction.
 Name                                     Type         Description

 contact                                  object       Container for contact information.

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 11 of 93                                                        www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

    firstName                             string       Customer’s first name.

    lastName                              string       Customer’s last name.

    email                                 string       Customer’s email.

    businessPhone                         string       Customer’s business phone number.

    mobilePhone                           string       Customer’s mobile phone number.

    phone                                 string       Customer’s phone number.

    dob                                   string       Customer’s date of birth.

Address
The address object allows you to specify address information for a transaction.
 Name                                     Type         Description

 address                                  object       Container for address information.

    address1                              string       Customer’s street address.

    address2                              string       Customer’s street address second line.

    city                                  string       Customer’s address city.

    state                                 string       Customer’s address 2-letter state abbreviation.

    zip                                   string       Customer’s address zip code.

Applicant
The applicant object allows you to specify details about an applicant.
 Name                                     Type         Description

 applicant                                object       Container for the applicant information.

    firstName                             string       First Name

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 12 of 93                                                        www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

    middleName                            string       Middle Name/Initial

    lastName                              string       Last Name

    suffix                                string       Name Suffix

    email                                 string       Email

    mobilePhone                           string       Mobile Phone Number

    phone                                 string       Phone Number

    address                               object       Container for address information.

FleetCard
The fleetCard object allows you to specify details about a fleet card transaction.
 Name                                     Type         Description

 fleetCard                                object       Container for return image information.

    departmentNumber                      string       Department # service prompt (WEX only).

    driverID                              string       Driver ID service prompt.

    fleetRC                               string       Fleet card restriction code.

    idNumber                              string       ID service prompt.

    jobNumber                             string       Job # service prompt (WEX only).

    miscNumericData                       string       Cust Data service prompt (WEX only).

    odometerReading                       string       Odometer service prompt.

    purchaseDevSequenceNumber             string       Purchase Dev. Seq. # service prompt (WEX only).

    vehicleID                             string       Vehicle ID service prompt.

Invoice
The invoice object allows you to specify details for a repair order.

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 13 of 93                                                        www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                 Version 1.5.21 – June 17, 2021

 Name                                     Type         Description

 invoice                                  object       Container for the invoice information.

    invoiceNumber                         string       Invoice Number.

    partsAmount                           decimal      Parts Amount.

    laborAmount                           decimal      Labor Amount.

    miscAmount                            decimal      Miscellaneous Amount.

    taxAmount                             decimal      Invoice Tax.

    totalAmount                           decimal      Invoice Total.

    startDate                             string       Invoice start date.

    endDate                               string       Invoice end date.

    description                           string       Description of goods and services.

    associateID                           string       Associate ID.

    invoiceData                           string       Invoice PDF (Base-64 encoded).

    invoiceFilename                       string       Local filename of the PDF to include with the invoice.

    lineItems                             array        See lineItem.

LineItem
The lineItem object allows you to specify line item information for a transaction.
 Name                                     Type         Description

 lineItems                                object       Container of line item information.

    quantity                              number       Item quantity.

    unitOfMeasure                         string       Unit of measure. See Appendix F for valid values.

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 14 of 93                                                        www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                               Version 1.5.21 – June 17, 2021

   unitPrice                             decimal      Unit price.

   lineItemTotal                         decimal      Total line item price. If this element is omitted, it will
                                                      be generated from the Unit Price and Quantity if those
                                                      elements are provided.
   productNumber                         string       Item Part Number or SKU that identifies the item being
                                                      sold.
   productCode                           string       Product code. See Appendix D for valid values.

   description                           string       Item description.

   serviceDescription                    number
                                                       Value                Description
                                                       0                    Other

                                                       1                    Alignment

                                                       2                    Change Air Filter

                                                       3                    Change Battery

                                                       4                    Change Brake Pads/Shoes

                                                       5                    Change Cabin Filter

                                                       6                    Change Coolant

                                                       7                    Change Spark Plugs

                                                       8                    Change Wipers

                                                       9                    Emission Check

                                                       10                   Multi Point Inspection

                                                       11                   Oil Change

                                                       12                   Service Battery

                                                       13                   State Inspection

Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
Page 15 of 93                                                        www.1stMILE.com • (425) 497-9909

          Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

                                                        14                   Tire Balance

                                                        15                   Tire Repair

                                                        16                   Tire Rotation

                                                        17                   Transmission Service

    mfg                                   string       Manufacturer or vendor.

    mfgProductNumber                      string       Manufacturer or vendor product number.

    labor                                 bool         Indicates whether the item is labor.

    declinedService                       bool         Indicates the item was a declined service.

    registrationType                      string       Indicates the type of registration to which the
                                                       registrationNumbers apply. Valid values are

                                                          Value       Description
                                                             D        D.O.T.

    registrationNumbers                   [string]     Array of registration numbers. This also requires the
                                                       registrationType element.

PhotoID
The photoID object allows you to specify the customer’s photo ID information.
 Name                                     Type         Description

 photoID                                  object       Container for photo ID information.

    expiration                            string       Either “MM/YY”, “MM/YYYY”, or “MM/DD/YYYY” ID
                                                       expiration date.
    number                                string       ID number.

    type                                  string       Type of ID. Valid values are

                                                          Value       Description
                                                             D        Driver License (default)

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 16 of 93                                                        www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

                                                             G        Green Card

                                                             M        Military ID

                                                             P        Passport

                                                             S        State ID Card

    state                                 string       Two-character state abbreviation.

Recurring
The recurring object allows you to specify details when creating a recurring transaction.
 Name                                     Type         Description

 recurring                                object       Container for the recurring information.

    amount                                decimal      Recurring billing amount.

    billingCycle                          number       Recurring billing cycle:

                                                        Value                Description
                                                        0                    None

                                                        1                    Weekly

                                                        2                    Monthly

                                                        3                    Quarterly

                                                        4                    Semi-Annual

                                                        5                    Annual

                                                        6                    Bi-Weekly

                                                        7                    Bi-Annual

                                                        8                    Quad-Weekly (28 days)

                                                        9                    One-Time

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 17 of 93                                                        www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                Version 1.5.21 – June 17, 2021

                                                        10                   Daily

                                                        11                   Bi-Monthly

    billMax                               number       Number of occurrences:

                                                        Value                Description
                                                        -1                   Unlimited

                                                        0                    None

                                                        > 0                  Value provided

    create                                bool         Default the UI option to be checked.

    startDate                             string       Start date of the recurring billing (MM/DD/YYYY).

Report
The report object allows you to specify details about a reporting request.
 Name                                     Type         Description

 report                                   object       Container for return image information.

    actionType                            string       For the Transaction Search report, this value allows
                                                       filtering the report:

                                                        Value                Description
                                                        AuthReversal         Shows Auth-only transactions.

                                                        Refund               Shows Sale and Post transactions.

                                                        Void                 Shows Approved transactions.

    date                                  string       Date for report in format “MM/DD/YYYY”.

    endDate                               string       End date for report in format “MM/DD/YYYY”.

ReturnImage
The returnImage object allows you to specify how you want the signature returned (if applicable).

 Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
 Page 18 of 93                                                        www.1stMILE.com • (425) 497-9909

           Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                               Version 1.5.21 – June 17, 2021

Name                                     Type         Description

returnImage                              object       Container for return image information.

   encoding                              string       Identifies the encoding in which you would like the
                                                      signature image returned:

                                                       Value        Description
                                                       Base64       Radix-64 encoding; the base 64 digits in
                                                                    ascending order from zero are the
                                                                    uppercase characters 'A' to 'Z', the
                                                                    lowercase characters 'a' to 'z', the
                                                                    numerals '0' to '9', and the symbols '+' and
                                                                    '/'. The valueless character, '=', is used for
                                                                    trailing padding.
                                                       BinHex       Binary to Hexadecimal encoding; each
                                                                    byte is converted to a hexadecimal string
                                                                    representation.
                                                      If this parameter is not specified, no image is returned.
   format                                string       Identifies the image format in which you would like the
                                                      signature image returned:

                                                       Value        Description
                                                       Bmp          Windows bitmap.

                                                       Gif          Graphics Interchange Format

                                                       Jpeg         Joint Photographic Experts Group image
                                                                    format
                                                       Png          Portable Network Graphics image format

                                                       Tiff         Tag Image File Format

   resize                                bool         If true, indicates that 1stMILE should resize the
                                                      signature image to the height and width specified.
   height                                number       Maximum image height (in pixels).

   width                                 number       Maximum image width (in pixels).

Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
Page 19 of 93                                                        www.1stMILE.com • (425) 497-9909

          Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

Vehicle
The vehicle object allows you to specify details about a vehicle.
    Name                                     Type         Description

    vehicle                                  object       Container for the recurring information.

       vin                                   string       Vehicle Identification Number

       year                                  number       Vehicle Year

       make                                  string       Vehicle Make

       model                                 string       Vehicle Model

       odometerReading                       number       Odometer Reading

       licenseNumber                         string       License Plate Number

       licenseState                          string       License Plate Two-letter State Abbreviation

Transaction Types
The following sections describe the different transaction types and the data elements that are
applicable for each type.

Configuration
The Configuration transaction type presents the Configuration dialog where the merchant can
change 1stMILE settings.
    Name                                     Type         Description

    transactionType                          string       Configuration

    merchant                                 object       Container for merchant information. See the merchant
                                                          data element.
    options                                  object       Container for options.

       centerScreen                          bool         Show the Configuration dialog centered on the screen.

Example
{
     "transactionType": "Configuration"
}

    Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
    Page 20 of 93                                                        www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

Result
When the user clicks OK on the Configuration dialog, 1stMILE returns the merchant element. Example:
[
     {
         "status": "accepted",
         "merchant": {
           "acctID": "TEST01",
           "subID": "IOS01",
           "merchantPIN": "xurG2kGYLFXPFRqXjFBs",
           "merchantName": "iOS Tester",
           "merchantAddress": "1000 1st Ave.",
           "merchantCityStateZip": "Redmond, WA 98052",
           "merchantPhone": "888-555-1212",
           "receiptText": ""
         }
     }
]
If the user clicks Cancel on the Configuration dialog, 1stMILE returns a canceled status:
[
     {
         "status": "cancelled
     }
]
If an error occurs, 1stMILE returns an error status:
[
     {
         "status": "error",
         "error": "Error details."
     }
]

Sale/Auth
Use the Sale transaction type to process a payment card sale. Use the Auth transaction type to
authorize a card payment. An Auth requires a follow up Post transaction to charge the card.
    Name                                     Type        Description

    transactionType                          string      Sale or Auth or CheckoutOpenLoans

    isv                                      object      Container for ISV information. See the isv data element

    merchant                                 object      Container for merchant information. See the merchant
                                                         data element.
    options                                  object      Container for options.

    Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
    Page 21 of 93                                                        www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                               Version 1.5.21 – June 17, 2021

   centerScreen                          bool        Show the dialog centered on the screen.

   exitOnCancelledSwipe                  bool        Automatically close the dialog if a card insert/swipe is
                                                     canceled.
   exitOnDecline                         bool        Automatically close the dialog if the transaction is
                                                     declined.
   lockParameters                        bool        Lock the following fields so they are read-only if data
                                                     was passed into the call: Order Number, Amount, Tax
                                                     Amount/Exempt, and Cashback.
   requireSignature                      bool        Require a signature regardless of the transaction type.
                                                     This overrides signatureOptional.
   sigAnnotation1                        string      Line of text to embed in the signature image.
                                                     Annotations appear above the signature and may affect
                                                     the height of the image.
   sigAnnotation2                        string      Additional line of text to embed in the signature image.

   sigAnnotation3                        string      Additional line of text to embed in the signature image.

   sigAnnotation4                        string      Additional line of text to embed in the signature image.

   signatureOptional                     bool        Make the signature optional for PIN Debit transactions.

   signaturePrompt                       string      Specifies the prompt to display on the hardware device
                                                     (if supported) for signature capture operations.
   tokenize                              bool        Specify true to tokenize the sale. Additionally, if a
                                                     credit application popup is successful, the newly created
                                                     account will be tokenized. This setting is ignored If
                                                     tokenization is not enabled.
transaction                              object      Container for transaction details.

   amount                                decimal     Order amount of the transaction.

   amountToFinance                       decimal     Value of amount to finance when closing a repair order
                                                     as part of the sale.
   billingAccountNumber                  string      Account number that the merchant uses to identify the
                                                     customer in their system. Applies to PINless debit
                                                     transactions.

Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
Page 22 of 93                                                        www.1stMILE.com • (425) 497-9909

          Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                               Version 1.5.21 – June 17, 2021

   cardholderRefNum                      string      If P3 transactions are enabled, this parameter may be
                                                     used to specify a card holder reference number. (AMEX
                                                     Commercial Card only)
   cashbackAmount                        decimal     Specifies the cashback amount (e.g., 1.23)

   chargeDescriptor                      string      If P3 transactions are enabled, this parameter may be
                                                     used to describe the charge. (AMEX Commercial Card
                                                     only)
   clinicAmount                          decimal     Clinic amount. (FSA transactions only)

   dentalAmount                          decimal     Dental amount. (FSA transactions only)

   ebtApprovalCode                       string      If Food Stamp Voucher Sale is selected, a Food Stamp
                                                     Voucher Sale group is displayed under the Credit Card
                                                     group. The required 4-6 alphanumeric Approval Code
                                                     field may be pre-populated with this parameter.
   ebtTransactionType                    string      The default selection in the Transaction Type group can
                                                     be controlled with the following values:

                                                      Value                                  Description
                                                      EBT                                    Select the        EBT
                                                                                             option.
                                                      CashBenefitSale                        EBT Cash Benefits
                                                                                             Purchase
                                                      FoodStampSale                          EBT Food Stamp
                                                                                             Purchase
                                                      FoodStampVoucherSale                   EBT Food Stamp
                                                                                             Voucher Sale
                                                      CashBenefitWithdrawal                  EBT Cash Benefit
                                                                                             Withdrawal
                                                      BalanceInquiry                         EBT            Balance
                                                                                             Inquiry
                                                      CashBenefitBalanceInquiry              EBT Cash
                                                                                             Benefit        Balance
                                                                                             Inquiry
                                                      FoodStampBalanceInquiry                EBT Food
                                                                                             Stamp          Balance
                                                                                             Inquiry

Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
Page 23 of 93                                                        www.1stMILE.com • (425) 497-9909

          Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                               Version 1.5.21 – June 17, 2021

   last4Digits                           string      The last four digits of the payment card or bank account
                                                     number. Required to identify a tokenized account.
   memo                                  string      Transaction memo; 256 character maximum.

   merchantOrderNumber                   string      A merchant or POS value to reference the transaction.

   poCustomerRefId                       string      If P3 transactions are enabled, this parameter may be
                                                     used to specify a cardholder's customer ID or reference
                                                     number for the Purchase Card.
   rxAmount                              decimal     RX amount. (FSA transactions only)

   supplierRefNum                        string      If P3 transactions are enabled, this parameter may be
                                                     used to specify a reference number that helps the
                                                     merchant identify the charge in case of an inquiry by the
                                                     credit card company. (AMEX Commercial Card only)
   taxAmount                             decimal     Amount of tax collected for the transaction.

   taxExempt                             bool        Indicates whether the transaction is tax exempt.

   token                                 number      Numeric token supplied by Merchant Partners.

   totalHealthCareAmount                 decimal     Total Health Care Amount. (FSA transactions only)

   visionAmount                          decimal     Vision amount. (FSA transactions only)

   voiceAuthCode                         string      Voice authorization code. If prompted during a
                                                     transaction to contact the customer’s issuing bank, the
                                                     bank provides a code that authorizes the transaction.
                                                     This code is required to charge the card.
contact                                  object      Container for contact information. See the contact
                                                     data element.
address                                  object      Container for customer address. See the address data
                                                     element
declinedServices                         object      Container for declined services. See the invoice data
                                                     element.
fleetCard                                object      Container for fleet card information. See the fleetCard
                                                     data element.
invoice                                  object      Container for invoice data. See the invoice data
                                                     element.

Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
Page 24 of 93                                                        www.1stMILE.com • (425) 497-9909

          Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

    lineItems                                array       Array of line items. See the lineItems data element.

    photoID                                  object      Container for customer photo ID. See the photoID data
                                                         element.
    recurring                                object      Container for recurring details. See the recurring data
                                                         element.
    returnImage                              object      Container for return image details. See the
                                                         returnImage data element.
    vehicle                                  object      Container for vehicle information. See the vehicle data
                                                         element.

Example 1:
This minimal example will use the locally saved settings for the merchant and options to run a sale for
$12.34:
{
     "transactionType": "Sale",
     "isv": {
        "key": "ISVXXX",
        "version": "1.2.0"
     },
     "transaction": {
        "amount": 12.34
     }
}
Example 2:
This example will override the locally saved settings to run an authorization:
{
     "transactionType": "Auth",
     "isv": {
        "key": "ISVXXX",
        "version": "1.2.0",
        "nameOfStation": "PC-XXX-001",
        "user": "Lane-001"
     },
     "merchant": {
        "acctID": "MTEST",
        "subID": "ISV01",
        "merchantPIN": "MPXXXX",
        "merchantName": "Tester ",
        "merchantAddress": "11121 Willows Road NE",
        "merchantCityStateZip": "Redmond, WA 98052",
        "merchantPhone": "425-497-9909"
     },
     "options": {
        "lockParameters": true
     },

    Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
    Page 25 of 93                                                        www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

     "transaction": {
       "amount": 12.34,
       "taxAmount": 1.23,
       "merchantOrderNumber": "PO-54322"
     }
}
Result:
[
     {
         "status": "accepted",
         "receiptGroup1": {
            "transactionType": "SALE",
            "transactionResult": "APPROVED",
            "timestamp": "7/26/2019 4:29:48 PM",
            "merchantOrderNumber": "MP170726-1629",
            "merchantID": "XXXXXXXXXXX0041",
            "termID": "187398",
            "amount": 12.34,
            "entryMethod": "C",
            "accountType": "Visa",
            "account": "XXXXXXXXXXXX0119",
            "name": "TEST CARD 01 UAT USA",
            "orderID": "1057848522",
            "transactionID": "1316080868",
            "authCode": "54418A"
         },
         "receiptGroup2": [
            "APPLABEL: VISA CREDIT",
            "AID: A0000000031010",
            "TVR: 8080008000",
            "IAD: 06010A03A0A800",
            "TSI: 6800",
            "ARQC: DF98468C4F4A7527",
            "ARC: 00",
            "CVM: S"
         ]
     }
]

Auth Reversal
Reverse an outstanding authorization-only transaction.
    Name                                     Type        Description

    transactionType                          string      AuthReversal

    isv                                      object      Container for ISV information. See the isv data element

    Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
    Page 26 of 93                                                        www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

    merchant                                 object      Container for merchant information. See the merchant
                                                         data element.
    options                                  object      Container for options.

          centerScreen                       bool        Show the dialog centered on the screen.

          exitOnDecline                      bool        Automatically close the Sale dialog if the transaction is
                                                         declined.
          lockParameters                     bool        Lock the following fields so they are read-only if data
                                                         was passed into the call: Order Number, Amount, Tax
                                                         Amount/Exempt, and Cashback.
          processImmediate                   bool        Attempt to process the transaction instead of showing
                                                         the dialog.
    transaction                              object      Container for transaction details.

          orderID                            number      Order ID of the original transaction.

          transactionID                      number      Transaction ID of the original transaction.

Example:
{
     "transactionType": "AuthReversal",
     "isv": {
        "key": "ISVXXX",
        "version": "1.2.0",
        "nameOfStation": "PC-XXX-001",
        "user": "Lane-001"
     },
     "transaction": {
        "amount": 12.34,
        "orderID": 222345678,
        "transactionID": 333456789
     }
}

Post
Capture funds for an auth-only transaction initiated.
    Name                                     Type        Description

    transactionType                          string      Post

    isv                                      object      Container for ISV information. See the isv data element

    Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
    Page 27 of 93                                                        www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

    merchant                                 object      Container for merchant information. See the merchant
                                                         data element.
    options                                  object      Container for options.

       centerScreen                          bool        Show the dialog centered on the screen.

       exitOnDecline                         bool        Automatically close the Sale dialog if the transaction is
                                                         declined.
       lockParameters                        bool        Lock the following fields so they are read-only if data
                                                         was passed into the call: Order Number, Amount, Tax
                                                         Amount/Exempt, and Cashback.
       processImmediate                      bool        Attempt to process the transaction instead of showing
                                                         the dialog.
    transaction                              object      Container for transaction details.

       amount                                decimal     Transaction amount.

       refCode                               string      RefCode of the original transaction. Not required if you
                                                         supply transactionID.
       transactionID                         number      Transaction ID of the original transaction. Not required
                                                         if you supply refCode.
    declinedServices                         object      Container for declined services. See the invoice data
                                                         element.
    invoice                                  object      Container for invoice data. See the invoice data
                                                         element.

Example 1:
{
     "transactionType": "AuthReversal",
     "isv": {
        "key": "ISVXXX",
        "version": "1.2.0",
        "nameOfStation": "PC-XXX-001",
        "user": "Lane-001"
     },
     "transaction": {
        "amount": 12.34,
        "transactionID": 333456789
     }
}
Example 2:
{
     "transactionType": "AuthReversal",
     "isv": {

    Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
    Page 28 of 93                                                        www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
1stMILE™ MiddleWare Integration Guide
                                                                                   Version 1.5.21 – June 17, 2021

       "key": "ISVXXX",
       "version": "1.2.0",
       "nameOfStation": "PC-XXX-001",
       "user": "Lane-001"
     },
     "transaction": {
        "amount": 12.34,
        "refCode": "333456789-0123456"
     }
}

Refund
Refund an existing transaction.
    Name                                     Type        Description

    transactionType                          string      Refund

    isv                                      object      Container for ISV information. See the isv data element

    merchant                                 object      Container for merchant information. See the merchant
                                                         data element.
    options                                  object      Container for options.

          centerScreen                       bool        Show the dialog centered on the screen.

          exitOnDecline                      bool        Automatically close the Sale dialog if the transaction is
                                                         declined.
          lockParameters                     bool        Lock the following fields so they are read-only if data
                                                         was passed into the call: Order Number, Amount, Tax
                                                         Amount/Exempt, and Cashback.
          processImmediate                   bool        Attempt to process the transaction instead of showing
                                                         the dialog.
    transaction                              object      Container for transaction details.

          amount                             decimal     Transaction amount.

          orderID                            string      Order ID of the original transaction.

          transactionID                      number      Transaction ID of the original transaction.

Example:
{
     "transactionType": "Refund",

    Copyright © 2021 1stMILE, LLC               8383 158th Ave NE, Suite 100 • Redmond, Washington 98052
    Page 29 of 93                                                        www.1stMILE.com • (425) 497-9909

              Proprietary and Confidential Information. Unauthorized reproduction or distribution prohibited.
You can also read