ProcessTransaction

  • Method

    Slimcd.Transact.ProcessTransaction

    Purpose

    Get all transactions in the current unsettled batch, returning a standard BatchTransaction.

    Description

    ProcessTransaction can be used to process SALE, AUTH/FORCE, VOID, CREDIT, TIPEDIT, UPDATE, and other transaction types. ProcessTransaction supports credit, debit, gift/loyalty and check processing. ProcessTransaction can accept direct payment data (such as cardnumber, track data, or check information) or can use tokenized data to charge cards already on file with SLIM CD.

    Business Rules

    Link to something

    Argument List

    Name Required Usage
    ProcessTransactionRequest Required Object containing properties for the request
    timeout Optional Integer wait time, in seconds, before timeout response is generated
    callback* Optional Function to call upon completion of asynchronous request

    *for JavaScript only

    ProcessTransactionRequest Fields

    [row_columnIndicator of the key injected in the device. Default is blank, where key is determined from indicators in the trackdata[/row_column]

    Field Name Type Length Required Description
    username value-2 20 value-4 Username or API Access Credential that accesses web service
    clientid value-2 10 value-4 Assigned by the Slim CD administrator
    password value-2 20 value-4 Plaintext password for the client account
    siteid value-2 10 value-4 Assigned by the Slim CD administrator
    priceid value-2 20 yes Assigned by the Slim CD administrator
    key value-2 value-3 yes SDK developer key obtained from Slim CD
    product value-2 32 no Product Name (Application name)
    version value-2 16 no Version ID of product
    kiosk value-2 16 16
    readerpresent value-2 3 value-4 Contains the value “yes” or “no” for a card reader at the merchant’s location
    contactlessreader value-2 value-3 value-4 value-5
    encryption_device value-2 20 no Default is blank, which causes automatic detection based on input. Valid option list will change, but currently:  IDTECH, POSX, MAGTEK.  Note that all devices default to KB mode, but HID mode can be used if trackdata is sent as all HEX digits
    encryption_type value-2 20 no Default is blank, which defaults to TDES. Valid option list will change, but currently:  TDES or AES
    encryption_key value-2 20 no
    firstname value-2 20 value-4 First name of cardholder
    lastname value-2 20 value-4 Last name of cardholder
    address value-2 30 value-4 Cardholder address
    city value-2 20 value-4 city
    state value-2 20 value-4 state
    zip value-2 10 value-4 zip code
    country value-2 30 value-4 county
    phone value-2 20 value-4 Cardholder phone number
    email value-2 40 value-4 Cardholder Email address
    birthdate value-2 6 value-4 YYMMDD format for the date of birth
    driverslic value-2 2096 value-4 Drivers License, SSN, Military ID or Passport ID number, or Base64 Driver’s License bar code binary data
    ssn value-2 value-3 value-4 value-5
    gateid value-2 12 value-4 Gateway ID for previous transaction
    usepooled value-2 value-3 value-4 value-5
    processor_token value-2 64 Optional Returned by processor from previous transaction, if available
    temporary_token value-2 value-3 value-4 value-5
    cardtype value-2 2 value-4 GC for gift card or LC for loyalty card
    corporatecard value-2 3 value-4 Contains the value “yes” or “no”
    trackdata value-2 varies value-4 Card swipe track data (See Appendix F)
    cardnumber value-2 20 value-4 Card number – used for verification
    expmonth value-2 2 value-4 Expiration month (MM)
    expyear value-2 4 value-4 Exp year (YYYY or YY)
    cvv2 value-2 4 value-4 CVV2
    pinblockdata value-2 32 value-4 Contains the encrypted pin code and decryption key from the pinpad. This variable is processor-specific, and should be replaced by using the “pinblock” and “ksn” values as separate fields
    pinblockdata value-2 value-3 value-4 value-5
    pinpadpresent String Values are yes/no or 1/0
    postype String Values are ECR, MOBILE, TABLET
    ksn value-2 16 or 20 value-4 The Key Serial Number from the pinpad, to be used with “pinblock” as a replacement for the larger “pinblockdata” that contains both fields in one
    checks value-2 3 value-4 Must contain the value ‘yes’
    micrreader value-2 3 value-4 Indicates presence of MICR reader – “yes” or “no”
    accttype value-2 value-3 value-4 value-5
    checktype value-2 12 value-4 Business, personal, or savings
    routeno value-2 9 value-4 Bank routing number on check
    accountno value-2 12 value-4 Account number on check
    checkno value-2 9 value-4 Check number on the check
    fullmicr value-2 value-3 value-4 value-5
    serialno value-2 9 value-4 check value
    statecode value-2 2 value-4 2 letter state code
    achcode value-2 value-3 value-4 value-5
    transtype value-2 18 value-4 (See Transaction Type Table for Legal Values)
    amount value-2 12 value-4 Amount to credit (USD)
    client_transref value-2 20 value-4 Client-supplied transaction identifier, (i.e. receipt number) which will be passed to the credit card network for specific industry types
    po value-2 9 value-4 purchase order number – used in purchase card data
    salestax value-2 9 value-4 Decimal / purchase card data
    authcode value-2 6 value-4 Auth code received for Offline Transactions
    cashback value-2 2 value-4 This contains the amount paid as cash back to the consumer
    gratuity value-2 12 value-4 Amount of the charge that represents tip
    value value-2 value-3 value-4 value-5
    allow_partial value-2 3 value-4 Contains the value “yes” or “no”. The default is “no”.   When set to “yes”, an approval can occur where the approved amount is LESS than the requested amount. It is the developer’s responsibility to check the “approvedamt” field to determine
    allow_duplicates value-2 3 value-4 Contains the value “yes” or “no”
    blind_credit value-2 3 value-4 Allow a credit with no previous sale – set this to yes/no
    extra_credit value-2 3 value-4 Allow a credit to exceed the amount of the original sale when the gateid of an original sale/force is provided – set this to yes/no (default is no)
    recurring value-2 2 value-4 whether this is a recurring transaction – set to yes/no
    installmentcount value-2 9 value-4 Rebilling value – number of payments in this installment cycle
    installmentseqno value-2 9 value-4 Rebilling value – number of the installment being sent
    billpayment value-2 value-3 value-4 value-5
    debtindicator value-2 value-3 value-4 value-5
    clientip value-2 20 value-4 IP of requesting client or person
    clerkname value-2 20 value-4 Clerk/Salesperson Name/ID
    cardpresent value-2 3 value-4 Contains the value “yes” or “no”
    contactless value-2 value-3 value-4 value-5
    send_email value-2 value-3 value-4 value-5
    send_cc value-2 value-3 value-4 value-5
    send_sms value-2 value-3 value-4 value-5
    cc_email value-2 value-3 value-4 value-5
    value value-2 value-3 value-4 value-5
    1. Passwords are required except when the username is set to an API Access Credential, in which case it should be passed in as an empty string.
    2. If an API Access Credential is only authorized for a single sites, passing in the default siteid value of zero will close the currently open batch for that single site.
    3. If the API Access Credential is authorized for multiple sites, the SiteID must be specified to indicate which batch to close.
    4. If the username is set to a clientid or username other than an API Access Credential, you must specify a non-zero siteidto indicate which batch to close.
    5. The batchnumber should always be passed as an empty string to close the open batch. Specifying a batch number will re-close an existing batch and may result in duplicate charges.

    Reply Fields

    reply outer tag for the reply data block
    response Success, FAIL, Error
    response code 0, 1, 2 (respective) matching the above
    description If successful, this will contain the single word, OK. Otherwise it will contain a description of failure or error which occurred
    reponseurl The Slimcd.com url which was called for this operation
    datablock The confirmation text returned from the server.

    Reply Hierarchy

    • reply
      • response
      • responsecode
      • description
      • responseurl
      • datablock
        • authcode
        • approved
        • cvv2reply
        • avsreply
        • gateid
        • bankid
        • corporatecardindicator
        • invoiceno
        • firstname
        • lastname
        • cardtype
        • last4
        • expmonth
        • expyear
        • processor_token
        • approvedhsaamt
        • approvedamt

    Remarks

    • General
      1. Names in name/value pairs are NOT case-sensitive
      2. Names inside XML tags ARE case-sensitive
    • Function-Specific
      1. None
  • Include

    Method

    Request

    Reply

    Sample Code

    Downloads Download full sample source.


  • Include

    Method

    Request

    JSON Reply

    Sample Code

    Downloads

    Download full sample source.


  • Include

    Method

    Request

    Reply

    Cross Reference: Client

    Sample Code

    Downloads

    Download full sample source.


  • Include

    Method

    Request

    Reply

    Cross Reference: Client

    Sample Code

    Downloads

    Download full sample source.


  • Include

    Method

    Request

    Reply

    Sample Code


  • Method

    Request

    Reply

    Sample Code

    Downloads

    Download full sample source.


  • URL

    Protocols

        • SOAP/XML
        • HTTP POST
        • HTTP GET

    Request


    The sample above shows the name/value pairs that would be send with HTTP POST

    Status Codes

    Status Code Status Description Explanation
    200 200 OK Approved or declined attempts will return a response with an XML reply block
    500 500 Internal Server Error The response will not contain XML, as a server error has occurred.

    Reply Output is in XML format if a status code of 200 is returned.

    If the block’s tag does not indicate “Success”, the tag will contain an error description which can be displayed to the end-user

    Sample Code


    The sample above shows the use of an API Access Credential with a blank password, and specifies a long timeout for CloseBatch


    The sample above shows the clientid, siteid and password. BatchNumber is always blank.

    DOWNLOAD

    EXERCISER TOOL

    Remarks

    • Remarks Go here
  • URL

    Protocols

    • HTTP POST
    • HTTP GET

    This function accepts either name/value pairs or JSON

    Request

    Reply

    Sample Code


    The sample above shows the use of an API Access Credential with a blank password, and specifies a long timeout for CloseBatch


    The sample above shows the clientid, siteid and password. BatchNumber is always blank.


    The sample above shows the use jQuery cross-domain POST with jsonp, sends an API Access Credential with a blank password, and specifies a long timeout for CloseBatch. Note that the service can be specified on the URL or inside the request object as another json data item


    The sample above shows the use jQuery cross-domain POST with name/value pairs, sends an API Access Credential with a blank password, and specifies a long timeout for CloseBatch. Note that the service can be specified on the URL or inside the request object as another name/value pair


     

    Remarks

    1. The jsonpayment.asp entry point returns a standard datablock on approved, declined, and errors for credit card transactions, making it easier to parse for class libraries.
    2. The jsonscript.asp entry point can also be called with service=ProcessTransaction (or PostXML or PostHTTP), but the datablock may not contain all elements on decline or error responses
    3. Check and gift card transactions may return different elements in the datablock than credit card transactions