Blackstone 3DS Service Integration Guide¶
This guide provides instructions for integrating 3DS authentication into your Blackstone payment system. The 3DS implementation uses an external service (3DS Integrator) for the client-side authentication process, while Blackstone provides the initial authentication credentials and handles the final payment processing with the SecureData.
Overview¶
The 3DS integration process involves:
- Blackstone-specific: Obtain authentication credentials from Blackstone API
- External service: Use 3DS Integrator for client-side authentication challenge
- Blackstone-specific: Include the resulting SecureData in your payment requests
Blackstone-Specific Integration¶
Step 1: Obtain API Credentials from Blackstone¶
Make a request to the Blackstone API to obtain an ApiKey and a Token, which are necessary for the 3DS Integrator service. It is recommended to make this request from the server side for increased security.
POST: https://services.bmspay.com/api/auth/tokenthreeds
Sample Body:
{
"mid": 76074,
"UserName": "nicolas",
"Password": "password1",
"AppType": 1,
"AppKey": "12345",
"cid": "1"
}
Sample Response:
{
"ApiKey": "7763ffac3f08a0eca618a0f9d77c67c5",
"Token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIzZHNpbnRlZ3JhdG9yX0F1dGhlbnRpY2F",
"ResponseCode": 200,
"Msg": [
"Operation Successful"
],
"verbiage": null
}
3DS Integrator Implementation¶
Important: Steps 2 and 3 use the external 3DS Integrator service. For complete implementation details, refer to the official 3DS Integrator Documentation.
Step 2: Client-Side 3DS Authentication¶
Using the ApiKey and Token obtained from Blackstone, implement the client-side 3DS challenge using 3DS Integrator:
-
Import the 3DS Integrator JavaScript library:
-
Instantiate the ThreeDS object with:
- Payment form ID
- ApiKey (from Blackstone)
- Token (from Blackstone)
- Options object with
showChallenge: true
- Callback function to receive challenge response
For detailed implementation: See 3DS Integrator Documentation for complete ThreeDS object configuration and callback handling.
Step 3: Configure Form Attributes¶
Add 3DS attributes to your payment form inputs to enable automatic data collection:
<!-- Required attributes -->
<input type="text" name="x_amount" value="00" data-threeds="amount" />
<input type="text" name="x_card_num" value="0000000000000000" data-threeds="pan" />
<input type="text" name="x_exp_month" value="00" data-threeds="month" />
<input type="text" name="x_exp_year" value="00" data-threeds="year" />
For complete attribute documentation: Refer to 3DS Library Documentation for all available attributes and configuration options.
Blackstone Payment Processing¶
Step 4: Include SecureData in Payment Requests¶
After the 3DS challenge completes successfully (status: "Y" or "A"), the callback will provide an authenticationValue
containing the SecureData. Include this SecureData in your Blackstone payment API requests.
Key Response Properties from 3DS Challenge:
- status: "Y" (passed) or "A" (attempted; treated as successful), "N/C/U" (failed)
- authenticationValue: Contains SecureData (when successful)
Note: If you encounter the message "No result found for transaction as yet", this is not a validation error. It is emitted by the 3DS library as part of its internal polling flow while awaiting a final outcome. You should ignore this specific message and continue processing normally.
Step 5: Testing¶
Use the test cards provided in the 3DS Integrator Test Cards Documentation to verify your integration works correctly across different scenarios.
Go-Live (Production Domains)¶
Important: Before going live, you must contact the Blackstone team to configure your production domains in the 3DS service. You must provide the complete domain name(s) where your checkout or payment form is hosted. Each hostname must be configured explicitly; providing only the base domain is not sufficient. Examples that must be configured individually:
example.com
www.example.com
app.example.com
Summary¶
Blackstone responsibilities:
- Provide 3DS authentication credentials (Step 1)
- Process payments with SecureData (Step 4+)
3DS Integrator responsibilities:
- Client-side authentication challenge (Steps 2-3)
- Generate SecureData upon successful authentication
External documentation: For complete 3DS implementation details, including advanced configurations and troubleshooting, refer to docs.3dsintegrator.com.