Retrieve CVM Signature
A new field for signature option is added to Converge terminal setting. The following code demonstrates how to obtain the value from Commerce SDK.
Default Use
Java (Android and Windows)
// In the callback method accountInformationRetrievalDidSucceed(
// ECLAccountInterface eclAccountInterface,
// ECLAccountInformation accountInformation)
// on interface ECLAccountInformationRetrievalListener
// Signature options can be obtained by the following codes
ECLTerminalConfiguration terminalConfig = eclAccountInterface.getTerminalConfiguration();
// Get signature option set in Converge Terminal
ECLSignatureOption signatureOptionConvergeTerminal = terminalConfig.getTerminalSignatureOption();
// Get applied signature option for transactions. Its value is same as signatureOptionTerminal if not
// overridden by POS system otherwise is the value set by POS system (see the section below)
ECLSignatureOption signatureOption = terminalConfig.getSignatureOption();
CWS
The following example shows the signature option in a response for openPaymentGateway request.
//Attribute signatureOptionTerminal in response represents the signature option from Converge terminal setting
//and is DISABLED in this case.
//Attribute signatureOption in response represents applied signature option for transactions. Its value is same
//as signatureOptionTerminal if not overridden by POS system otherwise is the value set by POS system (see
//the section below)
{
"requestId":"659460833",
"statusDetails":"REQUEST_ACCEPTED",
"data":{
"paymentGatewayCommand":{
"completed":true,
"eventQueue":[],
"openPaymentGatewayData":{
"result":"SUCCESS",
"paymentGatewayId":"c949e9fa-8387-48b1-9a44-071f4b53fd48"
},
"accountInfo":{
"businessEmail":"zahara.adossa-defreitas@elavon.com",
"city":"",
"address1":"",
"postalCode":"",
"isCvvEnabled":false,
"stateProvince":"",
"isCreditSurchargeAllowed":true,
"creditSurchargePercent":2.55,
"isAvsEnabled":false,
"isGratuitySupported":false,
"signatureOptionTerminal":"DISABLED",
"signatureOption":"OPTIONAL",
"name":"Cert 117_The_Grove_US_Test",
"currencyCode":"USD",
"marketSegment":"RETAIL"
}
}
}
}
C#
// Property AccountInfo of Object OpenPaymentGatewayResults has one new property for holding signature option:
// signatureOptionTerminal -- the signature option from Converge terminal
// signatureOption -- the signature option used for transactions
// Note: it returns the value set by POS system if POS system overrides it (see the section below)
private void updateAccountInformation(AccountInfo acctInfo)
{
Log("----- AccountInfo -----");
Log(String.Format("Converge Terminal Signature Option: {0}", acctInfo.signatureOptionTerminal));
Log(String.Format("Applied Signature Option: {0}", acctInfo.signatureOption));
}
Objective-C
// In the following callback method
// [ECLAccountInformationRetrievalDelegate accountInformationRetrievalDidSucceed:accountInformation:]
// param account can be used to obtain the Signature option
// Note: it returns the value set by POS system if POS system overrides it (see the section below)
ECLTerminalConfiguration *terminalConfiguration = [account terminalConfiguration];
// Get signature option set in Converge Terminal
ECLSignatureOption signatureOptionConvergeTerminal = [terminalConfiguration terminalSignatureOption];
// Get applied signature option for transactions. Its value is same as terminalSignatureOption from Converge if not
// overridden by POS system otherwise is the value set by POS system (see the section below)
ECLSignatureOption signatureOption = [terminalConfiguration getSignatureOption];
Override Signature Option
ECLSignatureOption enum has the following values:
- DISABLED - only suppress presentation
- OPTIONAL - presented, but can be bypassed
- ENABLED_MSR_ONLY - presented and required for MSR only
- ENABLED_ALL - presented and required
The default signature option is ECLSignatureOption.DISABLED.
If Converge supplies the signature option when retrieving the terminal account information, that value will be used as the default.
You have the option to override the default signature option:
Java (Android and Windows)
Override the default signature option for all transactions via ECLAccountInterface, as demonstrated below:
ECLSignatureOption signatureOption = ECLSignatureOption.OPTIONAL;
accountInterface.overrideSignatureOption(signatureOption);
Restore the default signature option for all transactions via ECLAccountInterface, as demonstrated:
accountInterface.overrideSignatureOption(null);
Override the default signature option for a single card transaction via ECLCardTenderInterface, as demonstrated below:
ECLCardTenderInterface cardTenderInterface = accountInterface.getTransactionProcessor().createCardTender();
ECLSignatureOption signatureOption = ECLSignatureOption.ENABLED_ALL;
cardTenderInterface.setSignatureOption(signatureOption);
If the signature option is overridden via both ECLAccountInterface and ECLCardTenderInterface, the signature option set in ECLCardTenderInterface will be used for the transaction.
CWS
New API method- overrideCvmOptions
This method overrides default CVM options.
Property | Description |
---|---|
method string | required | overrideCvmOptions |
requestId string | required | Transaction Request ID |
targetType string | required | api |
parameters JSON Object | required | All relevant parameters for overriding CVM options. |
signatureOption string | optional | This parameter overrides the default signature option that was pulled down from converge. This override applies to all transactions. Valid values: - DISABLED - OPTIONAL - ENABLED_MSR_ONLY - ENABLED_ALL |
Request example - overrideCvmOptions with signatureOption = DISABLED
{
"method" : "overrideCvmOptions",
"requestId" : "123456789",
"targetId" : "1",
"targetType" : "api",
"version" : "1.0",
"parameters" :
{
"signatureOption" : "DISABLED"
}
}
Response example - overrideCvmOptions with signatureOption = DISABLED
{
"requestId": "123456789",
"statusDetails": "REQUEST_ACCEPTED",
"data": {
"signatureOption": "DISABLED",
"completed": true
}
}
Update method - openPaymentGateway
New entry signatureOption is added to the parameters section of Request table for command openPaymentGateway. This parameter overrides the default signature option that was pulled down from converge. This override applies to all transactions.
Request example - openPaymentGateway with signatureOption = ENABLED_ALL
{
"method" : "openPaymentGateway",
"requestId" : "1234567890",
"targetType" : "paymentGatewayConverge",
"version" : "1.0",
"parameters" :
{
"merchantId" : "******",
"userId" : "******",
"pin" : "******",
"paymentGatewayEnvironment" : "QA_EXTERNAL",
"vendorId" : "******",
"vendorAppName" : "******",
"vendorAppVersion" : "******",
"email" : "*******",
"handleDigitalSignature" : "true",
"signatureOption" : "ENABLED_ALL"
}
}
Update method - startPaymentTransaction
New entry signatureOption is added to the parameters section of Request table for command startPaymentTransaction. This parameter overrides the default signature option that was pulled down from converge and the previously overridden signature option that was set via openPaymentGateway or overrideSignatureOption. This override applies only to the current transaction.
Request example - startPaymentTransaction with signatureOption = ENABLED_MSR_ONLY
{
"method" : "startPaymentTransaction",
"requestId" : "1234567891",
"targetType" : "paymentGatewayConverge",
"version" : "1.0",
"parameters" : {
"paymentGatewayId": "a6bf5379-65d5-4a17-aab3-52777969e55a",
"cardEntryTypes": null,
"transactionType": "SALE",
"tenderType": "CARD",
"baseTransactionAmount": {
"value": 100,
"currencyCode": "USD"
},
"forceTransaction": false,
"generateToken": false,
"addToken": false,
"tokenizedCardNumber": null,
"tokenExpirationDate": null,
"originalTransId": null,
"avsFields": null,
"cardType": null,
"note": null,
"merchantTransactionReference": "",
"invoiceNumber": null,
"isTaxInclusive": false,
"partialApprovalAllowed": false,
"gratuityFlowEnabled": false,
"gratuityCustomAmountEntryAllowed": false,
"gratuityQuickSelections": null,
"signatureOption" : "ENABLED_MSR_ONLY"
}
}
C#
Override the default signature option for all transactions by setting the signatureOption property in OverrideCvmOptions, as demonstrated below:
OverrideCvmOptions overrideCvmOptions = new OverrideCvmOptions();
overrideCvmOptions.signatureOption = "ENABLED_ALL";
m_CWS.StartOverrideCvmOptions(overrideCvmOptions, MyNotifyCWSEvent, MyOverrideCvmOptionsComplete);
Override the default signature option for all transactions by setting the signatureOption property in OpenPaymentArgs, as demonstrated below:
OpenPaymentArgs obea = new OpenPaymentArgs();
...
obea.signatureOption = "ENABLED_MSR_ONLY";
...
Objective-C
Override the default signature option for all transactions via ECLAccountProtocol, as demonstrated below:
ECLSignatureOption signatureOption = ECLSignatureOption_Disabled;
[accountProtocol overrideSignatureOption:signatureOption];
Restore the default signature option for all transactions via ECLAccountInterface, as demonstrated below:
[accountProtocol overrideSignatureOption:ECLSignatureOption_Unset];
Override the default signature option for a single card transaction via ECLCardTenderProtocol, as demonstrated below:
id<ECLCardTenderProtocol> cardTenderProtocol = [[accountProtocol transactionProcessor] createCardTender];
ECLSignatureOption signatureOption = ECLSignatureOption_EnabledAll;
[cardTenderProtocol setSignatureOption:signatureOption];
If the signature option is overridden via both ECLAccountProtocol and ECLCardTenderProtocol, the signature option set in ECLCardTenderProtocol will be used for the transaction.