Worldpay v1.1

Introduction

Worldpay provides secured, scalable, and reliable payment processing services through Worldpay's Express payment processing platform.

Worldpay provides the following capabilities and benefits:

  1. Credit Cards Payment
  2. Debit Cards Payment
  3. ACH payment (Bank account transfer)

Package features include:

  1. Payment Services
    1. You can use this package to execute a payment transaction in your application process.
  2. Max attempt control
    1. Limit the number of calls an application can make to Worldpay's Express platform.
  3. Analytics Milestones and Segmentation
    1. This package includes pre-built Milestones to help analyze the success rate.
    2. This package includes pre-built Segment to help analyze the payment type (cards vs ACH).
  4. Server and Client value objects
    1. This will help to use the results in an external service, for example, a enrollment application.
  5. Detailed data and system errors
    1. This can be particularly useful as the service will block unnecessary calls if anything is missing or wrong.
    2. It will also provide detailed messaging to help fix the problem, either for the applicant in case of missing information, or the form builder in case of misconfiguration.
  6. TAF + Maven support
  7. Exchange regression suite - automating over 50 scenarios
    1. This helps us improve turn around time in case of defects fixes.
    2. It also helps us makes release new enhancements faster.

This package doesn't support multiple applicants. If the application is of multiple applicant nature, the total payment should be calculated and payed by one of the applicants.

This package is built on the Exchange Framework (TIF). It is used to develop integrations in Journey Manager in a more efficient, standardized and scalable manner to reduce the ongoing costs for upgrades and maintenance.

Licensing

Clients must ensure they are appropriately licensed in order to use this package. Organisations who wish to use this package are required to establish a commercial relationship with the 3rd party vendor directly.

Compatibility

This package has the following compatibility requirements:

Module Compatibility Notes
Transact Manager 17.10.9 or above
Transact Maestro 18.05.9 or above
TIF maven version 1.4.1

Release Notes

Version 1.1 April 1, 2020

  • Configuration service support.
  • Added support for disabling milestone events optionally.

Version 1.0 Nov 14, 2019

  • Baseline release.



Installation

Exchange Installation

This package should be installed as a single archive via the Temenos Marketplace. Once installed you should walk through the following procedure to ensure you complete any required configuration:

  1. Review the documentation below for each of the imported services and make any adjustments necessary to service parameters.
  2. Review the documentation below for any Service Connections and add your credentials as required.
  3. Review the Help Doc tab for each of the imported services and make any required adjustments to service parameters.
  4. Review the Service Connection requirements under the same Help Doc tab for each of the imported services and make any required configurations to the Service Connection. Service Connections can be configured in Transact Manager under the Services >> Service Connections menu item.
  5. Installation of any included Maestro libraries requires you to login to you Maestro server and import them either into your organization (for global availability) or to your specific project.

Note: The default value of service parameters from this package, such as maxAttemptNumber will always override the value for existing service. After you reinstall or upgrade the package, make sure the service parameters value are suitable to your requirement.

Maven dependency

  • In your maven project, add the following dependencies in pom.xml as below in order to import and consume the Worldpay result through the Worldpay VO this package provides.

  • Note: Each service within this package must have Unified App Data enabled when building a form. Navigate to Forms > Form > Form Version and tick the Unified App Data checkbox.

    How to trigger fluent functions in Narrator

    Below is the example on how to trigger the fluent functions and provide input parameters in Form Narrative

    {
      "name": "Worldpay Narrative",
      "version": "1.0.0",
      "pages": [
        {
          "name": "PaymentOptions",
          "allowGoBack": false,
          "allowSubmit": false,
          "preActions": [],
          "postActions": [],
          "nextPages": ["OtherPaymentOptions", "EFTOptions"]
        },
        {
          "name": "OtherPaymentOptions",
          "condition": "${ txn.formDataMap.get('FundingOptions') == 'other'  }",
          "allowGoBack": true,
          "allowSubmit": true,
          "preActions": [],
          "postActions": [],
          "nextPages": []
        },
        {
          "name": "EFTOptions",
          "allowGoBack": true,
          "allowSubmit": false,
          "condition": "${ txn.formDataMap.get('FundingOptions') == 'eft' || txn.formDataMap.get('FundingOptions') == ''  }",
          "preActions": [],
          "postActions": [],
          "nextPages": ["WorldpayACH", "WorldpayCardPaymentInfo"]
        },
        {
          "name": "WorldpayACH",
          "allowGoBack": true,
          "allowSubmit": false,
          "condition": "${ txn.formDataMap.get('EFTType') == 'CheckSale' || txn.formDataMap.get('EFTType') == ''  }",
          "preActions": [],
          "postActions": [],
          "nextPages": ["BillingAddressAch"]
        },
        {
          "name": "WorldpayCardPaymentInfo",
          "allowGoBack": true,
          "allowSubmit": false,
          "condition": "${ txn.formDataMap.get('EFTType') == 'TransactionSetup' }",
          "preActions": [],
          "postActions": [],
          "nextPages": ["WorldpayCardPayment"]
        },
        {
          "name": "WorldpayCardPayment",
          "allowGoBack": true,
          "allowSubmit": false,
          "condition": "${ txn.formDataMap.get('EFTType') == 'TransactionSetup' }",
          "preActions": [],
          "postActions": [],
          "formActions": [
            {
              "name": "Worldpay - Cards Payment",
              "version": "1.1.0",
              "alwaysProcess": "false"
            },
            {
              "name": "Worldpay - Cards Payment Verification",
              "version": "1.1.0",
              "alwaysProcess": "false"
            }
          ],
          "nextPages": ["NotComplete", "Complete"]
        },
        {
          "name": "BillingAddressAch",
          "condition": "true",
          "allowGoBack": true,
          "allowSubmit": false,
          "preActions": [],
          "postActions": [],
          "nextPages": ["AmountAch"]
        },
        {
          "name": "AmountAch",
          "allowGoBack": true,
          "allowSubmit": false,
          "preActions": [],
          "postActions": [
            {
              "name": "Worldpay - ACH Payment",
              "version": "1.1.0",
              "alwaysProcess": true,
              "condition": "${( txn.formDataMap.get('PaymentMethod') != 'Worldpay ACH Payment Method' ||
                ( !txn.propertyMap.get('Worldpay.Payment.ACH.'+txn.formDataMap.get('RoutingNumber')+'-'+txn.formDataMap.get('AccountNumber')+'.currentAttemptsLeft') ||
                (txn.propertyMap.get('Worldpay.Payment.ACH.'+txn.formDataMap.get('RoutingNumber')+'-'+txn.formDataMap.get('AccountNumber')+'.currentAttemptsLeft')?:'0').toInteger() > 0 ))}",
              "params": {
                "BillingName": "${txn.formDataMap.get('BillingName')}",
                "BillingAddress1": "${txn.formDataMap.get('BillingAddress1')}",
                "BillingZipcode": "${txn.formDataMap.get('BillingZipcode')}",
                "Amount": "${txn.formDataMap.get('Amount')}",
                "RoutingNumber": "${txn.formDataMap.get('RoutingNumber')}",
                "AccountNumber": "${txn.formDataMap.get('AccountNumber')}",
                "AccountType": "${txn.formDataMap.get('AccountType')}",
                "VerifiedByExternalSource": "${ (txn.formDataMap.get('OnlineAccountVerification') != 'Worldpay')?'external':'' }",
                "CheckType": "0",
              }
            }
          ],
          "nextPages": ["NotComplete", "Complete"]
        },
        {
          "name": "NotComplete",
          "condition": "${ txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') == 'Setup' || txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') == 'Error' || txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') == 'False' || txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') == 'Unknown' || txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') == '' || txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') == null}",
          "allowGoBack": false,
          "allowSubmit": false,
          "preActions": [],
          "postActions": [],
          "nextPages": ["PaymentOptions"]
        },
        {
          "name": "Complete",
          "allowGoBack": false,
          "condition": "${ txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') != 'Setup' && txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') != 'Error' && txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') != 'False' && txn.propertyMap.get('Worldpay.Payment.Result.paymentStatus') != 'Unknown'}",
          "allowSubmit": true,
          "preActions": [],
          "postActions": [],
          "nextPages": []
        }
      ]
    }
    
    

    Below is an example of a form design that works with the above Form Narrative

    Page Id Narrator Controller Key Fields
    paymentOptions PaymentOptions
    Field Id Type Value
    fundingOptions Radio Button key:Electrical Fund Transfer, value:eft (default)
    key:Other, value :other
    eFTOptions EFTOptions
    Field Id Type Value
    eFTType Radio Button label:WorldPay Account Transfer, value:CheckSale (default)
    label:WorldPay Credit Card, value :TransactionSetup
    otherPaymentOptions OtherPaymentOptions
    worldPayACH WorldPayACH
    Field Id Type Value
    onlineAccountVerification Radio Button label:Plaid(online), value:Worldpay (default)
    label:Plaid(online), value :Plaid
    label:Yodlee(online), value :Yodlee
    worldpayCardPaymentInfo WorldPayCardPaymentInfo
    Field Id Type Value
    cardsPaymentAmount Text Field 222.00/td>
    cardsPaymentAddress Text Field 123 Main Street
    cardsPaymentZip Text Field 87654
    worldpayCardPayment WorldpayCardPayment
    Field Id Type Value
    Worldpay - Cards Payment Component
    billingAddressAch BillingAddressAch
    billingName Text Field Darwen Apple
    billingAddress1 Text Field 123 Monkey Hill Road, Oak Harbor, WA, USA
    billingZipcode Text Field 98277
    amountAch AmountAch
    routingNumber Text Field 021000021
    accountNumber Text Field 1234567890
    amount Text Field 33.34
    accountType Radio Button label:Checking, value:0(default)
    label:Savings, value :1
    Worldpay - ACH Component
    notComplete NotComplete
    complete Complete

    High Level Diagram

    Below are the process flow diagrams for Worldpay payment methods which give an insight into the design of the Exchange components.

    Cards Payment

    ACH Payment

    Cards Payment Configuration

    Maestro Assets

    Use the following procedure to configure Worldpay - Cards Payment component in your form:

    • Make sure the exchange-worldpay-taf Maestro library has been added to your Maestro project.
    • In Maestro, place the Worldpay - Cards Payment component onto your form in the location you wish to use cards payment service.
    • Select Worldpay - Cards Payment component, then from the Properties tab, select the Input Fields section. Next, click on Field References and map the form's actual payment fields the to predefined keys.
    • Once the form is published, make sure you enable the Unified App Data as follows:
      • Navigate to Forms>Form>Form Version and tick the Unified App Data checkbox.

    Using maestro components ACH Payment and Cards Payment in the same form will cause an XML duplicate binding warning. Ignore the warning and click Build.

    Note: By default, the Maestro form will show an alert box when validation errors happen. Since the component already has the built-in fields to display various data errors, you can add the following Javascript on Form Load in your form to suppress the alert box.

        Form.serverValidationErrorHandler = function() {};
    

    Journey Manager services

    Use the following procedure to configure the Worldpay - Cards Payment service in your Journey Manager:

    • Search for the Worldpay - Cards Payment service using the All Services page under the Services menu.
    • Click the Worldpay - Cards Payment service in the search results to navigate to the service page.
    • Click the Parameters Edit tab.
    • Click the Edit Parameter link next to the Transaction Setup Configuration parameter to edit the ReturnURL parameter.
    • The value of the ReturnURL parameter should point to an empty html file deployed in your Space. The only requirement of this parameter is to contain a URL to an empty file that exists in the same domain as the form.

    ACH Payment Configuration

    Maestro Assets

    Use the following procedure to configure the Worldpay - ACH component in your form:

    • Make sure the exchange-worldpay-taf Maestro library has been added to your Maestro project.
    • In Maestro, place the Worldpay - ACH component onto your form in the location you wish to use the ACH payment service.
    • Select the Worldpay - ACH component, then from the Properties tab, select Options. Then, select the "Show Error Messages" box if you want to use the built-in error messages.
    • Once the form is published, make sure you enable the Unified App Data as follows:
      • Navigate to Forms>Form>Form Version and tick the Unified App Data checkbox.

    This component doesn't trigger the related Worldpay - ACH Payment fluent function. The function is called as part of the narrative when the user clicks the Continue button since the service is typically configured as a post action. Therefore, the purpose of this component is to display the error and validation messages (if enabled).
    It is recommended to use the component even if the messages are disabled, in which case developers can use the different fields inside the component to construct custom messages.

    Using maestro components ACH Payment and Cards Payment in the same form will cause an XML duplicate binding warning. Ignore the warning and click Build.

    Note: By default, the Maestro form will show an alert box when validation errors happen. Since the component already has the built-in fields to display various data errors, you can add the following Javascript on Form Load in your form to suppress the alert box.

        Form.serverValidationErrorHandler = function() {};
    

    Max Attempt

    The Worldpay - Cards Payment and Worldpay - ACH Payment services within the package support the Max Attempts feature.

    This feature is intended to limit the number of calls to Worldpay API.

    Configuration

    1. Set the maxAttemptNumber to a positive number in the service parameter. The default value is 3.
    2. If you don't want to apply any restriction, set it to -1. However, it is recommended to limit the number of calls.
    3. If you want to alert the applicant to the number of attempts that are left, the number of attempts remaining display in both the JSON result and Data Field:attemptsLeft in the Maestro component.

    Max Attempt Behaviour

    • The maxAttemptNumber service parameter under the Worldpay - Cards Payment service will limit the number of calls to the Worldpay API from a single transaction.
    • The maxAttemptNumber service parameter under the Worldpay - ACH Payment service will limit the number of calls to Worldpay API for each applicant account. If the maximum limit is reached for a particular account, the applicant can try another account.

    Journey Analytics

    Milestone events

    Milestone events are automatically generated to show milestones on the User Journey view in Journey Analytics, the Journey Manager analytics tool.

    Name Trigger
    Worldpay Payment Start Upon calling any of the payment methods
    Worldpay Payment Complete Upon successful execution of payment methods

    Segment events

    Segment events are automatically generated to offer further analytics on the User Journey view in Journey Analytics.

    Note: Please make sure you've added the following segment name and valid values to the Journey Analytics segment whitelist before using this component.For more information, please refer to Journey Analytics Preferences

    NameValueTrigger
    Worldpay Payment TypeCards PaymentUpon calling Cards Payment methods
    Worldpay Payment TypeAccount DepositUpon calling ACH Payment methods

    Service Txn properties/ Server VO

    The table below describes Worldpay server VO fields stored in the Form XML Data and also stored in transaction properties.

    Name Description Format Notes
    Worldpay.Payment.Result.executionStatus The status of the service execution with possible values: [ SUCCESS | DATA_ERROR | SYSTEM_ERROR ] String
    Worldpay.Payment.Result.errorCode Error code String When a DATA_ERROR or SYSTEM_ERROR is experienced, this value provides the error code.
    Worldpay.Payment.Result.errorMessage Error Message String When a DATA_ERROR or SYSTEM_ERROR is experienced, this value may provide more detail on the nature of the error.
    Worldpay.Payment.Result.rawResponse Raw response String Optional field controlled by the service parameter recordResponseInTxnXML to store raw response in server VO
    httpAudit HTTP Audit Logging String Optional field controlled by the service parameter enableHttpAudit to records information about each HTTP request call made in the execution of a service
    Worldpay.Payment.Result.paymentMethod Possible values: [ Worldpay ACH Payment Method | Worldpay Cards Payment Method] String
    Worldpay.Payment.Result.paymentStatus Possible values of the payment status throughout the payment process.
    Worldpay Cards Payment Method [ | Setup | Error | Approved | Settled | Unknown]
    Worldpay ACH Payment Method [ False | VerificationFailed | Error | Pending (The expected paymentStatus in case of a successful transaction ) ]
    String
    Worldpay.Payment.Result.transactionSetupId A unique ID returned by calling Worldpay - Cards Payment service. It will be used later to verify cards payment status when applicant completes payment transaction on Worldpay's payment page inside the iframe.Only used by Worldpay - Cards Payment service. String
    Worldpay.Payment.Result.currentAccount A unique string that constructed by concatenating Applicant account's Routing Number and Account Number. Ex 021000021-1234567890. It is used to keep tacking of which account is being used at the moment to enable proper validation and error handling. Only used by Worldpay - ACH Payment service. String
    Worldpay.Payment.Result.accountVerificationInfo A string constructed from json object that contains information about applicant's accounts used to execute Worldpay - ACH Payment service. . Example [{"verificationMethod": "Worldpay:CheckVerification", "verificationTimestamp": "2019-10-29T14:07:55+11:00", "accountInformation": "021000021-1234567890", "availableBalance": -1.7976931348623157E+308}]. Only used by Worldpay - ACH Payment service. String
    Worldpay.Payment.Result.referenceNumber A number sent with the payment request that can be used later to inquire about the status of the payment transaction. String
    Worldpay.Payment.Result.worldPayTransactionProperties A stringified json object that contains summary information about Worldpay - ACH Payment payment status. Example {"expressResponseCode": "0", "transactionStatusCode": "10", "transactionId": "27480003"}. Only used by Worldpay - ACH Payment service. String
    Worldpay.Payment.ACH.{RoutingNumber}-{AccountNumber}.currentAttemptNumber The current attempts number for the account donated by {RoutingNumber}-{AccountNumber}. A txn property will be created for each applicant account used. Only used by Worldpay - ACH Payment service. Only persisted as txn properties. String
    Worldpay.Payment.ACH.{RoutingNumber}-{AccountNumber}.currentAttemptsLeft The current attempts left for the account donated by {RoutingNumber}-{AccountNumber}. A txn property will be created for each applicant account used. Only used by Worldpay - ACH Payment service. Only persisted as txn properties. String

    Scheduled Jobs

    The Worldpay - Cards Payment and Worldpay - ACH Payment services execute the payment transaction and return different values for the paymentStatus variable in Service Txn properties to indicate a successful transaction.
    Upon successful call, the Worldpay - Cards Payment service will return a paymentStatus value Approved. However, depending on the configuration with Worldpay, a reconciliation process will run - typically within 24 hours- that will change the value of the transaction to Settled. Therefore, depending on the use case a job might need to be created and run to query and update the value of paymentStatus variable.
    Similarly, upon successful call, the Worldpay - ACH Payment service will return a paymentStatus value Pending. Due to the nature of ACH processing, the status of ACH transactions will be updated over a period of several days. Therefore, depending on the use case a job might need to be created to frequently update the value of paymentStatus variable.
    The status of the payment transaction for both payment methods can be determined by submitting a TransactionQuery request through the Express reporting interface. The request should include the ReferenceNumber parameter. The value of the ReferenceNumber variable should be obtained from the Server VO variable Worldpay.Payment.Result.referenceNumber.

    Configuration Service Support

    This package supports the configuration service. Please make sure you follow the instruction below to setup your configuration service correctly.

    Create a service parameter keyMapping as below in your configuration service (service-def.json) if you haven't done so

        {
          "name": "keyMapping",
          "type": "String",
          "filePath": "json/keyMapping.json",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
    

    Note: You only need to create keyMapping service parameter once when you setup your first Exchange package. The rest of the Exchange package will just be keep adding content into the existing service parameter.

    Create or append the following content into json/keyMapping.json

    "worldpay": [
        {
          "serviceKey": "cards",
          "serviceName": "Worldpay - Cards Payment",
          "serviceParamKeyMap": {
            "recResInXml": "recordResponseInTxnXML",
            "recResInProp": "recordResponseInTxnProperties",
            "terminalConfig":"terminalConfiguration",
            "txnConfig":"transactionConfiguration",
            "accCredConfig":"accountCredentialsConfiguration",
            "appConfig":"applicationConfiguration",
            "txnSetConfig":"transactionSetupConfiguration"
          }
        },
        {
          "serviceKey": "ach",
          "serviceName": "Worldpay - ACH Payment",
          "serviceParamKeyMap": {
            "recResInXml": "recordResponseInTxnXML",
            "recResInProp": "recordResponseInTxnProperties",
            "terminalConfig":"terminalConfiguration",
            "txnConfig":"transactionConfiguration",
            "accCredConfig":"accountCredentialsConfiguration",
            "appConfig":"applicationConfiguration"
          }
        },
        {
          "serviceKey": "verify",
          "serviceName": "Worldpay - Cards Payment Verification ",
          "serviceParamKeyMap": {
            "recResInXml": "recordResponseInTxnXML",
            "recResInProp": "recordResponseInTxnProperties",
            "accCredConfig":"accountCredentialsConfiguration",
            "appConfig":"applicationConfiguration"
          }
        }
      ]
    

    Copy the following service parameters definition in your configuration service (service-def.json) and set the proper values for your project.

     {
          "name": "worldpay-cards|1.1.0-conn.endpoint",
          "description": "Service connection Endpoint for Worldpay - Cards Payment service",
          "value": "https://certtransaction.elementexpress.com/",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-conn.username",
          "description": "Service connection Username for Worldpay - Cards Payment service",
          "value": "1051704",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-conn.password",
          "description": "Service connection password for Worldpay - Cards Payment service",
          "value": "874767386",
          "type": "Password",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-terminalConfig",
          "description": "Terminal configurations",
          "value": "TerminalID\u003d0001\r\nTerminalType\u003d2\r\nCardPresentCode\u003d3\r\nCardholderPresentCode\u003d7\r\nCardInputCode\u003d4\r\nCVVPresenceCode\u003d2\r\nTerminalCapabilityCode\u003d5\r\nTerminalEnvironmentCode\u003d6\r\nMotoECICode\u003d7\r\nCVVResponseType\u003d1\r\nConsentCode\u003d3\r\nTerminalSerialNumber\u003d\r\nTerminalEncryptionFormat\u003d0\r\nLaneNumber\u003d\r\nStoreCardID\u003d\r\nStoreCardPassword\u003d\r\nOperatorID\u003d",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-txnConfig",
          "description": "Transaction configurations",
          "value": "TransactionAmount\u003d\r\nReferenceNumber\u003d\r\nTicketNumber\u003d\r\nMarketCode\u003d3\r\nPartialApprovedFlag\u003d0\r\n\r\nDuplicateCheckDisableFlag\u003d1\r\nDuplicateOverrideFlag\u003d1\r\nMerchantSuppliedTransactionID\u003d\r\nPaymentType\u003d\r\nSubmissionType\u003d\r\nNetworkTransactionID\u003d\r\n\r\n\r\n\r\n\r\n",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-accCredConfig",
          "description": "AccountToken configuration ",
          "value": "AccountToken\u003d8331A712ECB527DEB0A51EFC8D3EDEE37470C415D92FE9658ACEF1B45439268D81891D01",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-appConfig",
          "description": "Application configurations. Id, name, and version.",
          "value": "ApplicationID\u003d10096\r\nApplicationName\u003dAvoka Test Application\r\nApplicationVersion\u003dBeta",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-txnSetConfig",
          "description": "Transaction setup configurations",
          "value": "TransactionSetupMethod\u003d1\r\nEmbedded\u003d0\r\nDevice\u003d2\r\nCVVRequired\u003d0\r\nAutoReturn\u003d1\r\nDeviceInputCode\u003d0\r\nCompanyName\u003dVault\r\nLogoURL\u003d\r\nWelcomeMessage\u003d\r\nTagline\u003d\r\nReturnURL\u003dhttps://exchange.avoka-transact.com/web-plugin/index.htm\r\nReturnURLTitle\u003dReturn to Vault\r\nOrderDetails\u003d\r\nProcessTransactionTitle\u003d\r\nCustomCss\u003d\r\n\r\n\r\n",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-customCSS",
          "description": "CSS configurations",
          "value": "body {\r\nfont-family: Arial; font-size: 12px; color: #000099;\r\nbackground-color: #FFFFFF;\r\n}\r\n.selectOption {\r\nfont-family:Arial;\r\n}\r\n.inputText {\r\nfont-family:Arial;\r\n}\r\n.buttonEmbedded:link {\r\ncolor: blue;\r\n}",
          "type": "String",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-enableHttpAudit",
          "description": "With HTTP auditing enabled, details about each HTTP request (including request and response data) are stored in a transaction property as a JSON array against the relevant transaction.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-disableMilestones",
          "description": "Whether to disable Journey Analytics milestones for this service.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-recResInProp",
          "description": "Record response as txn property.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-recResInXml",
          "description": "Record response in FisIdvVO and persisted in Txn XML.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-cards|1.1.0-maxAttemptNumber",
          "description": "Max number allowed to initiate API calls in a single session. -1 means no limit.",
          "value": "3",
          "type": "Number",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-conn.endpoint",
          "description": "Service connection Endpoint for Worldpay - Payment ACH service",
          "value": "https://certtransaction.elementexpress.com/",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-conn.username",
          "description": "Service connection Username for Worldpay - Payment ACH service",
          "value": "1051704",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-conn.password",
          "description": "Service connection password for Worldpay - Payment ACH service",
          "value": "874767386",
          "type": "Password",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-terminalConfig",
          "description": "Terminal configurations",
          "value": "TerminalID\u003d0001\r\nTerminalType\u003d2\r\nCardPresentCode\u003d3\r\nCardholderPresentCode\u003d7\r\nCardInputCode\u003d4\r\nCVVPresenceCode\u003d2\r\nTerminalCapabilityCode\u003d5\r\nTerminalEnvironmentCode\u003d6\r\nMotoECICode\u003d7\r\nCVVResponseType\u003d1\r\nConsentCode\u003d3\r\nTerminalSerialNumber\u003d\r\nTerminalEncryptionFormat\u003d0\r\nLaneNumber\u003d\r\nStoreCardID\u003d\r\nStoreCardPassword\u003d\r\nOperatorID\u003d",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-txnConfig",
          "description": "Transaction configurations",
          "value": "TransactionAmount\u003d\r\nReferenceNumber\u003d\r\nTicketNumber\u003d\r\nMarketCode\u003d3\r\nPartialApprovedFlag\u003d0\r\n\r\nDuplicateCheckDisableFlag\u003d1\r\nDuplicateOverrideFlag\u003d1\r\nMerchantSuppliedTransactionID\u003d\r\nPaymentType\u003d\r\nSubmissionType\u003d\r\nNetworkTransactionID\u003d\r\n\r\n\r\n\r\n\r\n",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-accCredConfig",
          "description": "AccountToken configuration ",
          "value": "AccountToken\u003d8331A712ECB527DEB0A51EFC8D3EDEE37470C415D92FE9658ACEF1B45439268D81891D01",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-appConfig",
          "description": "Application configurations. Id, name, and version.",
          "value": "ApplicationID\u003d10096\r\nApplicationName\u003dAvoka Test Application\r\nApplicationVersion\u003dBeta",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-enableHttpAudit",
          "description": "With HTTP auditing enabled, details about each HTTP request (including request and response data) are stored in a transaction property as a JSON array against the relevant transaction.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-disableMilestones",
          "description": "Whether to disable Journey Analytics milestones for this service.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-recResInProp",
          "description": "Record response as txn property.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-recResInXml",
          "description": "Record response in FisIdvVO and persisted in Txn XML.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-ach|1.1.0-maxAttemptNumber",
          "description": "Max number allowed to initiate API calls in a single session. -1 means no limit.",
          "value": "3",
          "type": "Number",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-conn.endpoint",
          "description": "Service connection Endpoint for Worldpay - Payment Verification service",
          "value": "https://certreporting.elementexpress.com/",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-conn.username",
          "description": "Service connection Username for Worldpay - Payment Verification service",
          "value": "1051704",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-conn.password",
          "description": "Service connection password for Worldpay - Payment Verification service",
          "value": "874767386",
          "type": "Password",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-accCredConfig",
          "description": "AccountToken configuration ",
          "value": "AccountToken\u003d8331A712ECB527DEB0A51EFC8D3EDEE37470C415D92FE9658ACEF1B45439268D81891D01",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-appConfig",
          "description": "Application configurations. Id, name, and version.",
          "value": "ApplicationID\u003d10096\r\nApplicationName\u003dAvoka Test Application\r\nApplicationVersion\u003dBeta",
          "type": "String",
          "bind": false,
          "required": true,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-enableHttpAudit",
          "description": "With HTTP auditing enabled, details about each HTTP request (including request and response data) are stored in a transaction property as a JSON array against the relevant transaction.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-disableMilestones",
          "description": "Whether to disable Journey Analytics milestones for this service.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-recResInProp",
          "description": "Record response as txn property.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        },
        {
          "name": "worldpay-verify|1.1.0-recResInXml",
          "description": "Record response in FisIdvVO and persisted in Txn XML.",
          "value": "false",
          "type": "Boolean",
          "bind": false,
          "required": false,
          "clearOnExport": false,
          "readOnly": false
        }
    

    Note: Once you setup your application to use configuration service, all the service connection and service parameters data directly comes from the your configuration service. So there is no need to setup the original service connection or service parameter of the Exchange fluent function.

    Enable/Disable the configuration service

    In order to enable the configuration service in your application, please define the following organisation property in your organisation ConfigServiceName. This is to define which configuration service you would like to use in your organisation. For example, if you decide to trigger MyCompanyServiceConfiguration as the configuration service, set the following organisation property.
      ConfigServiceName=MyCompanyServiceConfiguration
    

    Note: Configuration service is an organisation level option. Once enabled, all Exchange services within the organisation will start retrieving the service connection and service parameters info from configuration service you specified above.

    You can simply delete the organisation property ConfigServiceName to disable the configuration service in your organisation.

    Maestro Assets

    Worldpay - Cards Payment Library: exchange-worldpay-taf Category: Worldpay - TAF

    Worldpay - Cards Payment allows applicant to run a card payment transaction

    Properties

    Property Category Description Type Default
    Payment Details Input Fields

    Defines input mappings for payment details data collected elsewhere in the form. Required mapping is Transaction Amount

    Field Refs:

    • transactionAmount : Transaction Amount
    • billingAddress1 : Billing Address1
    • billingZip : Billing Zip
    fieldRefMap
    Show Retry Button Options

    Optionally allow a retry button to show if the payment status is unknown

    boolean true
    Use Mobile page Options

    Optionally specify if Worldpay mobile page is to be used for mobile devices

    boolean true
    Worldpay - ACH Library: exchange-worldpay-taf Category: Worldpay - TAF

    Worldpay - ACH component captures ACH payment information (execution_status, errorCode, errorMessage, attemptsLeft, attemptsUsed, paymentStatus, paymentMethod, and currentAccount)

    Properties

    Property Category Description Type Default
    Error messages Control Fields Options

    Define input mappings for fields required to control error message.

    Define input mappings for fields required to control error message. Only required if "Show Error Messages" is enabled.

    Field Refs:

    • routingNumber : Routing Number
    • accountNumber : Account Number
    fieldRefMap
    Show Error Messages Options

    Optionally show error message fields

    boolean false

    Shared Styles

    • LoaderIframeStyle Library: exchange-worldpay-taf

    Services

    Worldpay - ACH Payment v1.1.0
    Provides Worldpay ACH Payment service.

    Service Connection

    Compatibility

    Module Compatibility
    Manager 17.10.9

    Service Parameters

    Name Description Required Default
    recordResponseInTxnProperties Record response as txn property. No false
    recordResponseInTxnXML Record response in WorldpayPaymentResultServerVO and persisted in Txn XML. No false
    maxAttemptNumber Max number allowed to execute ACH payment per applicant account. -1 means no limit. Yes 3
    terminalConfiguration Terminal configurations Yes TerminalID=0001 TerminalType=2 CardPresentCode=3 CardholderPresentCode=7 CardInputCode=4 CVVPresenceCode=2 TerminalCapabilityCode=5 TerminalEnvironmentCode=6 MotoECICode=7 CVVResponseType=1 ConsentCode=3 TerminalSerialNumber= TerminalEncryptionFormat=0 LaneNumber= StoreCardID= StoreCardPassword= OperatorID=
    transactionConfiguration Transaction configurations Yes TransactionAmount= ReferenceNumber= TicketNumber= MarketCode=3 PartialApprovedFlag=0 DuplicateCheckDisableFlag=1 DuplicateOverrideFlag=1 MerchantSuppliedTransactionID= PaymentType= SubmissionType= NetworkTransactionID=
    accountCredentialsConfiguration AccountToken configuration Yes AccountToken=8331A712ECB527DEB0A51EFC8D3EDEE37470C415D92FE9658ACEF1B45439268D81891D01
    applicationConfiguration Application configurations. Id, name, and version. Yes ApplicationID=10096 ApplicationName=Avoka Test Application ApplicationVersion=Beta
    enableHttpAudit With HTTP auditing enabled, details about each HTTP request (including request and response data) are stored in a transaction property as a JSON array against the relevant transaction. No false
    disableMilestones Whether to disable Journey Analytics milestones for this service. No false
    configServiceAppName AppName for configuration service. All exchange services use vendor code for AppName. Yes worldpay

    Inputs

    Name Description Required
    BillingName Consumer Name in FirstName LastName format (String 50). Yes
    AccountNumber Account Number of consumer bank account (String 20) Yes
    RoutingNumber Routing Number of the financial institution (String 9); Yes
    AccountType Type of account. Checking or Savings [0|1] Yes
    Amount Dollar amount of transaction (String 10) Format D.CC (99999.99). Yes
    BillingAddress1 The street address used for billing purposes (String 50) No
    BillingZipcode The zip code used for billing purposes (String 20) No
    TaxIdNumber SSN or Tax ID (no dashes) (String 9) No
    DriversLicenseNumber Drivers License Number (String 40) No
    DriversLicenseState 2-character state abbreviation (e.g. CA, NY, AZ) where the license was issued (String 2) No
    BirthDate Date of Birth. Format YYYYMMDD (String 8) No
    VerifiedByExternalSource Name of external account verification service(String 50) No

    Outputs

    Name Description
    data.executionStatus The status of the service execution [ SUCCESS | DATA_ERROR | SYSTEM_ERROR ].

    Successful execution will be denoted by a SUCCESS value. DATA_ERROR will indicate that there was an issue identified with the input data that may be resolved and potentially retried by the user. SYSTEM_ERROR indicates that there was an unrecoverable system fault and the form should fall-back gracefully to an alternative path.

    data.errorMessage When a DATA_ERROR is experienced, this value may provide more detail on the nature of the error.
    data.errorCode When a DATA_ERROR is experienced, this value provides the error code.
    Worldpay - Cards Payment v1.1.0
    Worldpay Cards Payment service retrieves a unique identifier (TransactionSetupId) from Worldpay Express platform to initialize cards payment service.

    Service Connection

    Compatibility

    Module Compatibility
    Manager 17.10.9

    Service Parameters

    Name Description Required Default
    recordResponseInTxnProperties Record response as txn property. No false
    recordResponseInTxnXML Record response in WorldpayPaymentResultServerVO and persisted in Txn XML. No false
    maxAttemptNumber Max number allowed to initiate API calls in a single session. -1 means no limit. Yes 3
    terminalConfiguration Terminal configurations Yes TerminalID=0001 TerminalType=2 CardPresentCode=3 CardholderPresentCode=7 CardInputCode=4 CVVPresenceCode=2 TerminalCapabilityCode=5 TerminalEnvironmentCode=6 MotoECICode=7 CVVResponseType=1 ConsentCode=3 TerminalSerialNumber= TerminalEncryptionFormat=0 LaneNumber= StoreCardID= StoreCardPassword= OperatorID=
    transactionConfiguration Transaction configurations Yes TransactionAmount= ReferenceNumber= TicketNumber= MarketCode=3 PartialApprovedFlag=0 DuplicateCheckDisableFlag=1 DuplicateOverrideFlag=1 MerchantSuppliedTransactionID= PaymentType= SubmissionType= NetworkTransactionID=
    accountCredentialsConfiguration AccountToken configuration Yes AccountToken=8331A712ECB527DEB0A51EFC8D3EDEE37470C415D92FE9658ACEF1B45439268D81891D01
    applicationConfiguration Application configurations. Id, name, and version. Yes ApplicationID=10096 ApplicationName=Avoka Test Application ApplicationVersion=Beta
    transactionSetupConfiguration Transaction setup configurations Yes TransactionSetupMethod=1 Embedded=0 Device=2 CVVRequired=0 AutoReturn=1 DeviceInputCode=0 CompanyName=Vault LogoURL= WelcomeMessage= Tagline= ReturnURL=https://exchange.avoka-transact.com/web-plugin/index.htm ReturnURLTitle=Return to Vault OrderDetails= ProcessTransactionTitle= CustomCss=
    customCSS CSS configurations No body { font-family: Arial; font-size: 12px; color: #000099; background-color: #FFFFFF; } .selectOption { font-family:Arial; } .inputText { font-family:Arial; } .buttonEmbedded:link { color: blue; }
    enableHttpAudit With HTTP auditing enabled, details about each HTTP request (including request and response data) are stored in a transaction property as a JSON array against the relevant transaction. No false
    disableMilestones Whether to disable Journey Analytics milestones for this service. No false
    configServiceAppName AppName for configuration service. All exchange services use vendor code for AppName. Yes worldpay

    Inputs

    Name Description Required
    BillingAddress1 The street address used for billing purposes (String 50). No
    BillingZip The zip code used for billing purposes (String 20) No
    TransactionAmount Dollar amount of transaction (String 10) Format D.CC (99999.99). Yes

    Outputs

    Name Description
    data.executionStatus The status of the service execution [ SUCCESS | DATA_ERROR | SYSTEM_ERROR ].

    Successful execution will be denoted by a SUCCESS value. DATA_ERROR will indicate that there was an issue identified with the input data that may be resolved and potentially retried by the user. SYSTEM_ERROR indicates that there was an unrecoverable system fault and the form should fall-back gracefully to an alternative path.

    data.errorMessage When a DATA_ERROR is experienced, this value may provide more detail on the nature of the error.
    data.errorCode When a DATA_ERROR is experienced, this value provides the error code.
    data.transactionSetupId A unique id identifying a successful initialization of cards payment. Can be used later for payment verification.
    data.paymentMethod The payment method, it should return Worldpay Cards Payment Method
    data.paymentStatus The status of the payment transaction setup [Setup|Error]
    Worldpay - Cards Payment Verification v1.1.0
    Provides Worldpay ACH Payment service. Worldpay Cards Payment Verification service uses existing TransactionSetupId (persisted in ServerVO) to inquired about the payment status from Worldpay Express platform and update the payment status accordingly.

    Service Connection

    Compatibility

    Module Compatibility
    Manager 17.10.9

    Service Parameters

    Name Description Required Default
    recordResponseInTxnProperties Record response as txn property. No false
    recordResponseInTxnXML Record response in WorldpayPaymentResultServerVO and persisted in Txn XML. No false
    accountCredentialsConfiguration AccountToken configuration variable Yes AccountToken=8331A712ECB527DEB0A51EFC8D3EDEE37470C415D92FE9658ACEF1B45439268D81891D01
    applicationConfiguration Application configurations. Id, name, and version. Yes ApplicationID=10096 ApplicationName=Avoka Test Application ApplicationVersion=Beta
    enableHttpAudit With HTTP auditing enabled, details about each HTTP request (including request and response data) are stored in a transaction property as a JSON array against the relevant transaction. No false
    disableMilestones Whether to disable Journey Analytics milestones for this service. No false
    configServiceAppName AppName for configuration service. All exchange services use vendor code for AppName. Yes worldpay

    Outputs

    Name Description
    data.executionStatus The status of the service execution [ SUCCESS | DATA_ERROR | SYSTEM_ERROR ].

    Successful execution will be denoted by a SUCCESS value. DATA_ERROR will indicate that there was an issue identified with the input data that may be resolved and potentially retried by the user. SYSTEM_ERROR indicates that there was an unrecoverable system fault and the form should fall-back gracefully to an alternative path.

    data.errorMessage When a DATA_ERROR is experienced, this value may provide more detail on the nature of the error.
    data.errorCode When a DATA_ERROR is experienced, this value provides the error code.
    data.transactionSetupId A unique id that was used to verify the payment status.
    data.paymentMethod The payment method, it should return Worldpay Cards Payment Method
    data.paymentStatus The status of the payment transaction setup [Approved|Settled|Unknown|Error]

    Service Connections

    The following service connections are used by this package.

    Worldpay - Payment ACH
    Property Name Description Required
    Type HTTP Endpoint Yes
    Endpoint Worldpay - Cards Payment Interface end point.
    • Test: https://certtransaction.elementexpress.com/
    • Prod: https://transaction.elementexpress.com/
    Make sure you change to the correct URL on production before using this service.
    Yes
    Username AccountID is a unique account identifier provided by WorldPay. Yes
    Password AcceptorID is a unique identifier provided by WorldPay. AccountToken is another identifier provided by WorldPay that should be configured in Service Parameter accountCredentialsConfiguration Yes
    Worldpay - Cards Payment
    Property Name Description Required
    Type HTTP Endpoint Yes
    Endpoint Worldpay - Cards Payment Interface end point.
    • Test: https://certtransaction.elementexpress.com/
    • Prod: https://transaction.elementexpress.com/
    Make sure you change to the correct URL on production before using this service.
    Yes
    Username AccountID is a unique account identifier provided by WorldPay. Yes
    Password AcceptorID is a unique identifier provided by WorldPay. AccountToken is another identifier provided by WorldPay that should be configured in Service Parameter accountCredentialsConfiguration Yes
    Worldpay - Payment Verification
    Property Name Description Required
    Type HTTP Endpoint Yes
    Endpoint Worldpay - Cards Payment Interface end point.
    • Test: https://certreporting.elementexpress.com/
    • Prod: https://reporting.elementexpress.com/
    Make sure you change to the correct URL on production before using this service.
    Yes
    Username AccountID is a unique account identifier provided by WorldPay. Yes
    Password AcceptorID is a unique identifier provided by WorldPay. AccountToken is another identifier provided by WorldPay that should be configured in Service Parameter accountCredentialsConfiguration Yes