Skip to main content

Application Overview

Transact is launched by opening a URL in any browser. The URL carries the account identifier, configuration name, and optional parameters that control what the agent sees, how the payment is processed, and where results are sent.

https://{envDomain}.transact.aiphoria.net?account={account}
  • sandbox β€” global sandbox
  • uk β€” production UK

Everything the application does β€” which fields appear, which PSP is called, how the agent correlates a call, and what happens after submission β€” is driven by a configuration stored against the account. The sections below walk through the application screens, explain the configuration structure, and list every input parameter.


1. Application Walkthrough​

Authorisation​

Before reaching the capture screens, an agent must be authorised. Transact supports two authorisation modes:

  • Dynamic agent authorisation β€” If the username parameter is supplied in the launch URL and the account is enabled for dynamic agent authorisation, the agent is authenticated automatically and taken straight to the application. No login screen is shown.
  • Login screen β€” If username is not supplied, or the account is not enabled for dynamic agent authorisation, the agent is redirected to the login screen.

Login screens

When dynamic agent authorisation is not active, Transact shows a login form. The fields displayed depend on which parameters are already in the URL.

1

Login with account in the URL

Login with account in the URL

When the account parameter is included in the launch URL, the login form pre-fills the account and only asks for Username and Password.

Step 1 of 2


Pay by Phone​

Pay by Phone walkthrough

The agent correlates a live call, the customer enters card details via DTMF or speech, and the agent submits the payment.

1

Bootstrap Menu

Bootstrap Menu

When bootstrap is enabled the agent lands on a menu offering Pay by Phone (Keypad or Speech) and Pay by Link (Webchat, SMS or Email). The configuration controls which options appear and which is the default.

Step 1 of 10


Pay by Link walkthrough

The agent sends the customer a secure capture link. The customer enters card details on their own device while the agent monitors progress in real time.

1

Bootstrap Menu

Bootstrap Menu

When bootstrap is enabled the agent lands on a menu offering Pay by Phone (Keypad or Speech) and Pay by Link (Webchat, SMS or Email). The configuration controls which options appear and which is the default.

Step 1 of 14


2. Configuration Overview and Options​

Every Transact deployment stores one or more configurations as JSON documents against the account. The configuration name is passed in the launch URL via the configuration query parameter. If omitted, the account's default configuration is used.

A configuration is split into the following top-level sections:

Main​

Controls the overall behaviour of the application.

KeyTypeDescription
EnableBootstrapbooleanShow the bootstrap menu on launch (Pay by Phone / Pay by Link). When false the application skips straight to capture.
Bootstrap.CaptureApplicationOptionsarrayWhich capture channels are available, e.g. ["payByPhone", "payByLink"].
Bootstrap.DefaultCaptureApplicationstringThe pre-selected channel when bootstrap loads.
Bootstrap.BootstrapLogostringPath to a custom logo displayed on the bootstrap menu.
SubmitPspRequestbooleanWhether to send a payment request to a PSP on form submission.
EnableDataPostbooleanWhether to HTTP POST transaction data to a configured endpoint on completion.
EnableRedirectbooleanWhether to redirect the browser to a configured URL on completion.
EnableManualCorrelationbooleanEnable manual call-correlation (Keypad / Search).
CardCaptureKeyTypestringKey type for the capture session, typically "GUID".
ManualCorrelation.enableDtmfCorrelationbooleanAllow DTMF keypad correlation.
ManualCorrelation.supressionDigitstringThe digit used as a prefix/suffix for the correlation code, e.g. "#".
ManualCorrelation.completionDigitsstringThe sequence that signals the end of the correlation code, e.g. "##".
ManualCorrelation.enableSearchbooleanAllow searching for a live call by phone number.
ManualCorrelation.searchCallStartDatetimeDeltaInMinutesintHow far back (in minutes) to search for active calls.
ManualCorrelation.searchPageSizeintNumber of results per page in the call search list.
DefaultCurrencyCodestringFallback currency code when none is supplied at launch, e.g. "GBP".
allowedCardTypesarrayWhitelist of accepted card schemes, e.g. [{"name":"visa"},{"name":"mastercard"}].
Theme.themestringTheme mode β€” "custom" to load an external theme JSON.
Theme.themeConfigUrlstringURL to the custom theme configuration file.
Theme.defaultstringDefault appearance, "light" or "dark".

Input​

Controls how inbound parameters are interpreted.

KeyTypeDescription
DecryptQueryStringbooleanWhether the query string is encrypted and needs decryption on arrival.
defaultsobjectDefault values for parameters not supplied in the URL, e.g. {"currencyCode":"GBP","merchantId":"..."}.
ParameterMapobjectMaps incoming parameter names to internal names, e.g. {"billingSurname":"billingLastName","amount":"paymentAmount"}. This allows callers to use their own naming conventions.

Psp​

Defines the payment service provider integration.

KeyTypeDescription
requestTypestringThe PSP operation: "authoriseAndSettle", "authoriseandsettlewithToken", "tokenise", etc.
namestringThe PSP adapter to use, e.g. "BarclaycardFuse", "PayPoint", "vesta", "opayodirect".
api.versionstringPSP API version, e.g. "v1".

CardCapture​

Defines the agent-side card capture form.

KeyTypeDescription
validateLuhnbooleanPerform a Luhn check on the PAN before submission.
phoneAutoStartEnabledbooleanAutomatically begin DTMF/ASR capture when the form loads (skip manual start).
phoneAutoStartModestringAuto-start mode: "DTMF" or "ASR".
fieldsarrayOrdered list of fields on the capture form. Each field has a captureType, layout (width), label, editability and mandatory flag.

Supported captureType values:

captureTypeDescription
capturePanSecure PAN (card number) capture β€” agent sees only masked digits.
captureExpiryDateSecure expiry date capture.
captureCscSecure CSC/CV2 capture.
amountPayment amount field β€” can be editable or locked via a parameter.
freeTextAgent-editable text field bound to a parameter using {parameterName} syntax.
comboBoxDrop-down select field with predefined options.
tokeniseCardToggle for customer consent to tokenise/save the card.

RemoteCardCapture​

Defines the customer-facing Pay by Link experience.

KeyTypeDescription
CustomerUrlstringBase URL for the customer capture page. A unique key is appended.
ValidateLuhnbooleanLuhn validation on the customer page.
AllowSmsbooleanAllow sending the link via SMS.
AllowEmailbooleanAllow sending the link via Email.
AllowCopybooleanAllow copying the link to clipboard.
SmsProviderstringSMS delivery provider, e.g. "Azure".
SmsSenderIdstringThe sender name shown on the SMS.
SmsMessageTextstringCustom SMS body. Use {{URL}} and {{CUSTOMERSHORTCODE}} as placeholders.
CopyMessageTextstringCustom message text when the link is copied. Supports {{URL}} and {{CUSTOMERSHORTCODE}}.
displayKeyValuesobjectKey/value pairs from the session to display to the customer, e.g. {"amount":"{amount}"}.
Resources.ThemeSourceUrlstringURL to the customer page theme configuration.
Resources.LogoSourceUrlstringURL to the customer page logo.
FieldsarrayCustomer-side capture fields: typedPan, typedExpiryDate, typedCsc.

Output​

Defines what happens after the form is submitted.

KeyTypeDescription
completionFormobjectDefines success, error and cancel screens shown to the agent. Each contains fields (key/value pairs using {parameter} syntax) and text (title, message, note).
redirectobjectIf redirect is enabled, defines the HTTP verb ("post" or "get") and fields to include. Field values support {parameter} syntax and inline transformation functions.
datapostobjectIf datapost is enabled, defines the HTTP verb ("post" or "get"), OriginType ("fromBrowser" or "fromServer"), contentType ("form-urlencoded" or "json") and fields to include. Field values support {parameter} syntax and inline transformation functions.

3. Application Inputs from Known Parameters​

Parameters are passed to Transact via the launch URL query string. They control authorisation, call correlation and capture data. The table below lists all known parameters.

Authorization​

ParameterMandatoryTypeDefaultDescription
usernameNostringβ€”If supplied, dynamic authorisation is attempted. If the account is not set up for dynamic authorisation β€” or this is omitted β€” the login screen is shown.

Core​

ParameterMandatoryTypeDefaultDescription
accountYesstringβ€”The short account GUID created during provisioning.
configurationNostring"default"The Transact configuration to launch. If omitted, the account's default configuration is used.
cardCaptureSessionKeyNostringAuto-generated GUIDThe key under which captured card details are stored. If not provided, one is generated automatically.
allowedCardTypesNoarray of objectsβ€”Whitelist of allowed card types, e.g. [{ name: 'visa', credit: true, debit: true }].
tokeniseCardOptionNoenum"hidden"Controls the tokenise-card checkbox visibility. Options: "hiddenChecked", "hidden", "visibleChecked", "visible", "disabledChecked", "disabled".
redirectUrlNostringβ€”Single address for all redirect requests.
redirectOnSuccessUrlNostringβ€”Redirect address for successful payments.
redirectOnCancelUrlNostringβ€”Redirect address for cancelled payments.
redirectOnErrorUrlNostringβ€”Redirect address for failed payments.
datapostUrlNostringβ€”Single address for all datapost requests.
datapostOnSuccessUrlNostringβ€”Datapost address for successful payments.
datapostOnCancelUrlNostringβ€”Datapost address for cancelled payments.
datapostOnErrorUrlNostringβ€”Datapost address for failed payments.

Correlation​

These parameters enable automatic call correlation β€” bypassing the manual Keypad/Search step.

ParameterMandatoryTypeDefaultDescription
dialogIdNostringβ€”Correlate using the call's dialog ID.
sipCallIdNostringβ€”Correlate using the call's SIP Call-ID.
externalCorrelationIdNostringβ€”Correlate using the value sent in the X-EAIP-EXTERNALCORRELATIONID SIP header.
fromNumberNostringβ€”Correlate using the call's originating number.
toNumberNostringβ€”Correlate using the call's destination number.
telephoneNumberNostringβ€”Correlate using either the call's originating or destination number.

Capture / Payment​

These parameters pre-populate the capture form and are forwarded to the PSP.

ParameterMandatoryTypeDefaultDescription
amountNoint0Payment amount in atoms (smallest currency unit) to send to the PSP.
currencyCodeNostring"GBP"Currency code sent to the PSP.
cardHolderNameNostringβ€”Name of the card holder sent to the PSP.
merchantIdNostringβ€”Key specifying which merchant credentials to apply to the PSP request.
cardTokenNostringβ€”A card token to send to the PSP (for tokenised repeat payments).
addressNumericsNostringβ€”Numeric values from the address for AVS checks.
postCodeNumericsNostringβ€”Numeric values from the postcode for AVS checks.
orderIdNostringβ€”Order ID sent to the PSP.
customerReferenceNostringβ€”Customer reference sent to the PSP.
transactionReferenceNostringβ€”Transaction reference sent to the PSP.
descriptionNostringβ€”Description sent to the PSP.
billingForenameNostringβ€”Bill payer's forename.
billingSurnameNostringβ€”Bill payer's surname.
billingAddress1Nostringβ€”First line of the billing address.
billingAddress2Nostringβ€”Second line of the billing address.
billingCityNostringβ€”Billing city.
billingCountyNostringβ€”Billing county.
billingCountryNostringβ€”Billing country.
billingPostCodeNostringβ€”Billing postcode.
billingEmailAddressNostringβ€”Bill payer's email address.
billingTelephoneNumberNostringβ€”Bill payer's phone number.
Parameter Mapping

If your calling system uses different parameter names, the configuration's Input.ParameterMap can map them transparently. For example, {"billingSurname":"billingLastName","amount":"paymentAmount"} lets you send billingLastName and paymentAmount instead of the standard names above.

Docs AssistantAsk anything about our products