Skip to content

Commit aad7af2

Browse files
authored
Merge pull request #170 from CyberSource/nov24-release
Nov24 release
2 parents 021a6f7 + 175cc6e commit aad7af2

File tree

120 files changed

+4837
-474
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+4837
-474
lines changed

MLE.md

+121
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,121 @@
1+
[![Generic badge](https://img.shields.io/badge/MLE-NEW-GREEN.svg)](https://shields.io/)
2+
3+
# Message Level Encryption (MLE) Feature
4+
5+
This feature provides an implementation of Message Level Encryption (MLE) for APIs provided by CyberSource, integrated within our SDK. This feature ensures secure communication by encrypting messages at the application level before they are sent over the network.
6+
7+
## Configuration
8+
9+
### Global MLE Configuration
10+
11+
In the `merchantConfig` object, set the `useMLEGlobally` variable to enable or disable MLE for all supported APIs for the Rest SDK.
12+
13+
- **Variable**: `useMLEGlobally`
14+
- **Type**: `Boolean`
15+
- **Default**: `false`
16+
- **Description**: Enables MLE globally for all APIs when set to `true`. If set to `true`, it will enable MLE for all API calls that support MLE by CyberSource, unless overridden by `mapToControlMLEonAPI`.
17+
18+
### API-level MLE Control
19+
20+
Optionally, you can control the MLE feature at the API level using the `mapToControlMLEonAPI` variable in the `merchantConfig` object.
21+
22+
- **Variable**: `mapToControlMLEonAPI`
23+
- **Type**: `Map<String,Boolean>`
24+
- **Description**: Overrides the global MLE setting for specific APIs. The key is the function name of the API in the SDK, and the value is a boolean indicating whether MLE should be enabled (`true`) or disabled (`false`) for that specific API call.
25+
26+
### MLE Key Alias
27+
28+
Another optional parameter for MLE is `mleKeyAlias`, which specifies the key alias used to retrieve the MLE certificate from the JWT P12 file.
29+
30+
- **Variable**: `mleKeyAlias`
31+
- **Type**: `String`
32+
- **Default**: `CyberSource_SJC_US`
33+
- **Description**: By default, CyberSource uses the `CyberSource_SJC_US` public certificate to encrypt the payload. However, users can override this default value by setting their own key alias.
34+
35+
## Notes
36+
- If `useMLEGlobally` is set to true, it will enable MLE for all API calls that support MLE by CyberSource, unless overridden by mapToControlMLEonAPI.
37+
- If `mapToControlMLEonAPI` is not provided or does not contain a specific API function name, the global useMLEGlobally setting will be applied.
38+
- The `mleKeyAlias` parameter is optional and defaults to CyberSource_SJC_US if not specified by the user. Users can override this default value by setting their own key alias.
39+
40+
## Example Configuration
41+
```
42+
{
43+
"merchantConfig": {
44+
"useMLEGlobally": true //globally MLE will be enabled for all MLE supported APIs
45+
}
46+
}
47+
OR
48+
//Set MLE Settings in Merchant Configuration
49+
Properties merchantProps = new Properties();
50+
merchantProps.setProperty("useMLEGlobally", "true");
51+
```
52+
Or
53+
54+
```
55+
{
56+
"merchantConfig": {
57+
"useMLEGlobally": true, //globally MLE will be enabled for all MLE supported APIs
58+
"mapToControlMLEonAPI": {
59+
"apiFunctionName1": false, //if want to disable the particular api from list of MLE supported APIs
60+
"apiFunctionName2": true //if want to enable MLE on API which is not in the list of supported MLE APIs for used version of Rest SDK
61+
},
62+
"mleKeyAlias": "Custom_Key_Alias" //optional if any custom value provided by Cybs
63+
}
64+
}
65+
OR
66+
//Set MLE Settings in Merchant Configuration
67+
Map<String,Boolean> mleMap = new HashMap<>();
68+
mleMap.put("apiFunctionName1", false);
69+
mleMap.put("apiFunctionName2", true);
70+
71+
Properties merchantProps = new Properties();
72+
merchantProps.setProperty("useMLEGlobally", "true");
73+
merchantProps.put("mapToControlMLEonAPI", mleMap);
74+
merchantProps.setProperty("mleKeyAlias", "Custom_Key_Alias");
75+
```
76+
Or
77+
78+
```
79+
{
80+
"merchantConfig": {
81+
"useMLEGlobally": false, //globally MLE will be disabled for all APIs
82+
"mapToControlMLEonAPI": {
83+
"apiFunctionName1": true, //if want to enable MLE for API1
84+
"apiFunctionName2": true //if want to enable MLE for API2
85+
},
86+
"mleKeyAlias": "Custom_Key_Alias" //optional if any custom value provided by Cybs
87+
}
88+
}
89+
OR
90+
//Set MLE Settings in Merchant Configuration
91+
Map<String,Boolean> mleMap = new HashMap<>();
92+
mleMap.put("apiFunctionName1", true);
93+
mleMap.put("apiFunctionName2", true);
94+
95+
Properties merchantProps = new Properties();
96+
merchantProps.setProperty("useMLEGlobally", "false");
97+
merchantProps.put("mapToControlMLEonAPI", mleMap);
98+
merchantProps.setProperty("mleKeyAlias", "Custom_Key_Alias");
99+
```
100+
101+
In the above examples:
102+
- MLE is enabled/disabled globally (`useMLEGlobally` is true/false).
103+
- `apiFunctionName1` will have MLE disabled/enabled based on value provided.
104+
- `apiFunctionName2` will have MLE enabled.
105+
- `mleKeyAlias` is set to `Custom_Key_Alias`, overriding the default value.
106+
107+
Please refer given link for sample codes with MLE:
108+
https://github.com/CyberSource/cybersource-rest-samples-java/tree/master/src/main/java/samples/MLEFeature
109+
110+
## Additional Information
111+
112+
### API Support
113+
- MLE is initially designed to support a few APIs.
114+
- It can be extended to support more APIs in the future based on requirements and updates.
115+
### Authentication Type
116+
- MLE is only supported with `JWT (JSON Web Token)` authentication type within the SDK.
117+
### Using the SDK
118+
To use the MLE feature in the SDK, configure the `merchantConfig` object as shown above and pass it to the SDK initialization.
119+
120+
## Contact
121+
For any issues or further assistance, please open an issue on the GitHub repository or contact our support team.

README.md

+7
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,13 @@ More information about this new logging framework can be found in this file : [L
104104

105105
## Features
106106

107+
### Message Level Encryption (MLE) Feature
108+
[![Generic badge](https://img.shields.io/badge/MLE-NEW-GREEN.svg)](https://shields.io/)
109+
110+
This feature provides an implementation of Message Level Encryption (MLE) for APIs provided by CyberSource, integrated within our SDK. This feature ensures secure communication by encrypting messages at the application level before they are sent over the network.
111+
112+
More information about this new MLE feature can be found in this file : [MLE.md](MLE.md)
113+
107114
### MetaKey Support
108115

109116
A Meta Key is a single key that can be used by one, some, or all merchants (or accounts, if created by a Portfolio user) in the portfolio.

docs/CommerceSolutionsProductsTokenManagementConfigurationInformationConfigurations.md

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
Name | Type | Description | Notes
66
------------ | ------------- | ------------- | -------------
77
**parentProfileId** | **String** | Specify the Vault ID to which transacting MID needs to be assigned.Provide Vault ID as seen on EBC Vault management page. If not provided , transacting MID will be assigned to the existing default Vault at merchant&#39;s level. If there are no Vaults at merchant level , a new Vault will be created and transacting MID will be assigned to it. | [optional]
8+
**vault** | [**CommerceSolutionsProductsTokenManagementConfigurationInformationConfigurationsVault**](CommerceSolutionsProductsTokenManagementConfigurationInformationConfigurationsVault.md) | | [optional]
89

910

1011

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
# CommerceSolutionsProductsTokenManagementConfigurationInformationConfigurationsVault
3+
4+
## Properties
5+
Name | Type | Description | Notes
6+
------------ | ------------- | ------------- | -------------
7+
**defaultTokenType** | **String** | Default token type to be used. Possible Values: - &#39;CUSTOMER&#39; - &#39;PAYMENT_INSTRUMENT&#39; - &#39;INSTRUMENT_IDENTIFIER&#39; | [optional]
8+
**location** | **String** | Location where the vault will be stored. Use &#39;IDC&#39; (the Indian Data Centre) when merchant is storing token data in India or &#39;GDC&#39; (the Global Data Centre) for all other cases. Possible Values: - &#39;IDC&#39; - &#39;GDC&#39; | [optional]
9+
**tokenFormats** | [**TmsTokenFormats**](TmsTokenFormats.md) | | [optional]
10+
**tokenPermissions** | [**TokenPermissions**](TokenPermissions.md) | | [optional]
11+
**sensitivePrivileges** | [**TmsSensitivePrivileges**](TmsSensitivePrivileges.md) | | [optional]
12+
**nullify** | [**TmsNullify**](TmsNullify.md) | | [optional]
13+
**networkTokenServices** | [**TmsNetworkTokenServices**](TmsNetworkTokenServices.md) | | [optional]
14+
15+
16+

docs/ECheckConfigCommonInternalOnlyProcessors.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ Name | Type | Description | Notes
88
**terminalId** | **String** | *NEW* The &#39;Terminal Id&#39; aka TID, is an identifier used for with your payments processor. Depending on the processor and payment acceptance type this may also be the default Terminal ID used for Card Present and Virtual Terminal transactions. Applicable for VPC processors. | [optional]
99
**enable15anTransactionReferenceNumber** | **Boolean** | *NEW* This ensures the transaction reference # contains an identifier that can be viewed in CYBS | [optional]
1010
**portalSupportedPaytypes** | **String** | *NEW* This is used by the EBC2 application | [optional]
11-
**settlementMethod** | **Object** | *NEW* | [optional]
12-
**verificationLevel** | **Object** | *NEW* | [optional]
11+
**settlementMethod** | **String** | *NEW* Possible values: - BEST_GUESS | [optional]
12+
**verificationLevel** | **String** | *NEW* Possible values: - VALIDATION | [optional]
1313
**setCompletedState** | **Boolean** | *Moved* When set to Yes we will automatically update transactions to a completed status X-number of days after the transaction comes through; if no failure notification is received. When set to No means we will not update transaction status in this manner. For BAMS/Bank of America merchants, they should be set to No unless we are explicitly asked to set a merchant to YES. | [optional]
1414

1515

docs/ECheckConfigCommonProcessors.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ Name | Type | Description | Notes
88
**companyId** | **String** | *EXISTING* company ID assigned to merchant by Acquiring bank. This field is alphanumeric | [optional]
99
**batchGroup** | **String** | *EXISTING* Capture requests are grouped into a batch bound for your payment processor. The batch time can be identified by reading the last 2-digits as military time. E.g., &lt;processor&gt;_16 &#x3D; your processing cutoff is 4PM PST. Please note if you are in a different location you may then need to convert time zone as well. | [optional]
1010
**enableAccuityForAvs** | **Boolean** | *NEW* Accuity is the original validation service that checks the account/routing number for formatting issues. Used by WF and set to \&quot;Yes\&quot; unless told otherwise | [optional]
11-
**accuityCheckType** | **Object** | *NEW* | [optional]
11+
**accuityCheckType** | **String** | *NEW* Possible values: - ALWAYS | [optional]
1212
**setCompletedState** | **Boolean** | *Moved* When set to Yes we will automatically update transactions to a completed status X-number of days after the transaction comes through; if no failure notification is received. When set to No means we will not update transaction status in this manner. For BAMS/Bank of America merchants, they should be set to No unless we are explicitly asked to set a merchant to YES. | [optional]
1313

1414

docs/ECheckConfigFeaturesAccountValidationServiceInternalOnlyProcessors.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Properties
55
Name | Type | Description | Notes
66
------------ | ------------- | ------------- | -------------
7-
**avsVersion** | **Object** | *NEW* | [optional]
7+
**avsVersion** | **String** | *NEW* Possible values: - 2 | [optional]
88

99

1010

docs/ECheckConfigFeaturesAccountValidationServiceProcessors.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ Name | Type | Description | Notes
77
**avsAccountOwnershipService** | **Boolean** | *NEW* Determined in WF eTicket if account has opted into the Account Ownership Service. | [optional]
88
**avsAccountStatusService** | **Boolean** | *NEW* Determined in WF eTicket if account has opted into the Account Status Service. | [optional]
99
**avsSignedAgreement** | **Boolean** | *NEW* Taken from Addendum Agreement Column in boarding form. | [optional]
10-
**avsCalculatedResponseBehavior** | **Object** | *NEW* | [optional]
10+
**avsCalculatedResponseBehavior** | **String** | *NEW* Possible values: - continue | [optional]
1111
**avsAdditionalId** | **String** | *NEW* Also known as the Additional ID. Taken from the boarding form. | [optional]
1212
**enableAvs** | **Boolean** | *NEW* | [optional]
1313
**avsEntityId** | **String** | *NEW* Also known as the AVS Gateway Entity ID. | [optional]
14-
**avsResultMode** | **Object** | *NEW* | [optional]
14+
**avsResultMode** | **String** | *NEW* Possible values: - FULL_RESPONSE - LOGIC_BOX | [optional]
1515
**enableAvsTokenCreation** | **Boolean** | *NEW* Applicable if the merchant wants to run AVS on token creation requests only. | [optional]
1616

1717

docs/GenerateCaptureContextRequest.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
## Properties
55
Name | Type | Description | Notes
66
------------ | ------------- | ------------- | -------------
7-
**targetOrigins** | **List&lt;String&gt;** | The [target origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the website on which you will be launching Microform is defined by the scheme (protocol), hostname (domain) and port number (if used). You must use https://hostname (unless you use http://localhost) Wildcards are NOT supported. Ensure that subdomains are included. Any valid top-level domain is supported (e.g. .com, .co.uk, .gov.br etc) Examples: - https://example.com - https://subdomain.example.com - https://example.com:8080&lt;br&gt;&lt;br&gt; If you are embedding within multiple nested iframes you need to specify the origins of all the browser contexts used, for example: targetOrigins: [ \&quot;https://example.com\&quot;, \&quot;https://basket.example.com\&quot;, \&quot;https://ecom.example.com\&quot; ] | [optional]
8-
**allowedCardNetworks** | **List&lt;String&gt;** | The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MAESTRO - MASTERCARD - AMEX - DISCOVER - DINERSCLUB - JCB - CUP - CARTESBANCAIRES - CARNET | [optional]
97
**clientVersion** | **String** | Specify the version of Microform that you want to use. | [optional]
8+
**targetOrigins** | **List&lt;String&gt;** | The [target origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the website on which you will be launching Microform is defined by the scheme (protocol), hostname (domain) and port number (if used). You must use https://hostname (unless you use http://localhost) Wildcards are NOT supported. Ensure that subdomains are included. Any valid top-level domain is supported (e.g. .com, .co.uk, .gov.br etc) Examples: - https://example.com - https://subdomain.example.com - https://example.com:8080&lt;br&gt;&lt;br&gt; If you are embedding within multiple nested iframes you need to specify the origins of all the browser contexts used, for example: targetOrigins: [ \&quot;https://example.com\&quot;, \&quot;https://basket.example.com\&quot;, \&quot;https://ecom.example.com\&quot; ] | [optional]
9+
**allowedCardNetworks** | **List&lt;String&gt;** | The list of card networks you want to use for this Microform transaction. Microform currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA | [optional]
1010
**checkoutApiInitialization** | [**Microformv2sessionsCheckoutApiInitialization**](Microformv2sessionsCheckoutApiInitialization.md) | | [optional]
1111

1212

docs/GenerateUnifiedCheckoutCaptureContextRequest.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
## Properties
55
Name | Type | Description | Notes
66
------------ | ------------- | ------------- | -------------
7-
**targetOrigins** | **List&lt;String&gt;** | The [target origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the website on which you will be launching Unified Checkout is defined by the scheme (protocol), hostname (domain) and port number (if used). You must use https://hostname (unless you use http://localhost) Wildcards are NOT supported. Ensure that subdomains are included. Any valid top-level domain is supported (e.g. .com, .co.uk, .gov.br etc) Examples: - https://example.com - https://subdomain.example.com - https://example.com:8080&lt;br&gt;&lt;br&gt; If you are embedding within multiple nested iframes you need to specify the origins of all the browser contexts used, for example: targetOrigins: [ \&quot;https://example.com\&quot;, \&quot;https://basket.example.com\&quot;, \&quot;https://ecom.example.com\&quot; ] | [optional]
87
**clientVersion** | **String** | Specify the version of Unified Checkout that you want to use. | [optional]
9-
**allowedCardNetworks** | **List&lt;String&gt;** | The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - DISCOVER - DINERSCLUB - JCB | [optional]
8+
**targetOrigins** | **List&lt;String&gt;** | The [target origin](https://developer.mozilla.org/en-US/docs/Glossary/Origin) of the website on which you will be launching Unified Checkout is defined by the scheme (protocol), hostname (domain) and port number (if used). You must use https://hostname (unless you use http://localhost) Wildcards are NOT supported. Ensure that subdomains are included. Any valid top-level domain is supported (e.g. .com, .co.uk, .gov.br etc) Examples: - https://example.com - https://subdomain.example.com - https://example.com:8080&lt;br&gt;&lt;br&gt; If you are embedding within multiple nested iframes you need to specify the origins of all the browser contexts used, for example: targetOrigins: [ \&quot;https://example.com\&quot;, \&quot;https://basket.example.com\&quot;, \&quot;https://ecom.example.com\&quot; ] | [optional]
9+
**allowedCardNetworks** | **List&lt;String&gt;** | The list of card networks you want to use for this Unified Checkout transaction. Unified Checkout currently supports the following card networks: - VISA - MASTERCARD - AMEX - CARNET - CARTESBANCAIRES - CUP - DINERSCLUB - DISCOVER - EFTPOS - ELO - JCB - JCREW - MADA - MAESTRO - MEEZA | [optional]
1010
**allowedPaymentTypes** | **List&lt;String&gt;** | The payment types that are allowed for the merchant. Possible values when launching Unified Checkout: - PANENTRY - GOOGLEPAY - SRC - CHECK &lt;br&gt;&lt;br&gt; Possible values when launching Unified Checkout with Checkout API: - PANENTRY - SRC &lt;br&gt;&lt;br&gt; Possible values when launching Click To Pay Drop-In UI: - CLICKTOPAY &lt;br&gt;&lt;br&gt; **Important:** - SRC and CLICKTOPAY are only available for Visa, Mastercard and AMEX. | [optional]
1111
**country** | **String** | Country the purchase is originating from (e.g. country of the merchant). Use the two-character ISO Standard | [optional]
1212
**locale** | **String** | Localization of the User experience conforming to the ISO 639-1 language standards and two-character ISO Standard Country Code. Please refer to list of [supported locales through Unified Checkout](https://developer.cybersource.com/docs/cybs/en-us/unified-checkout/developer/all/rest/unified-checkout/uc-appendix-languages.html) | [optional]

0 commit comments

Comments
 (0)