Developer/Connection method/Link Type/EMV 3-D Secure Authentication System

EMV 3-D Secure Authentication System

EMV 3-D Secure for Online Payment ASP authenticates credit card user information and other payment information for most transactions without additional authentication through risk-based authentication and requires additional authentication, such as a one-time password, for high-risk transactions only.
Merchants can link card user payment information to a certificate authority by incorporating the EMV 3-D Secure authentication JavaScript provided by SBPS into its website.

Usage Overview

Available Payment Methods

Credit Card Payment
(ID verification service (EMV 3-D Secure))

The flow from acquiring the credit card user payment information token to the purchase request is as follows. For details on the payment flow after obtaining the credit card user payment information token, refer to the Link Type Purchase Request / Link Type Customer Payment Information Registration Request.

The interface for the EMV 3-D Secure Authentication System is shown below. The format to be used should be the XML format.
For details, see API Type (Basic Specifications).

Filecom_sbps_system_tds2infotoken.js
Function namecom_sbps_system_tds2.generateToken
DestinationTo be informed when the service starts
Object/function nameField nameDescriptionRemarks
tokenRequestToken requestAn object that specifies properties that are required to generate token of payment information for credit card user.Set customer information obtained from merchant website.
callbackCallbackA function that calls back after the token of payment information for credit card user is obtained.

Credit Card User Payment Information Token Request

≪About Formats≫ 9: Numeric Type (1 Byte 0 to 9), X: Half-width Character String, M: Multi-byte Character String (No need for BASE64 encoding)

SEQ Tag element name Field name Chars Format Req'd Type Description Remarks
1 merchantId Merchant ID 5 9 Fixed ID for identifying the merchant Specified by SBPS
2 serviceId Service ID 3 9 Fixed ID for identifying the merchant's service Specified by SBPS
3 billingLastName Last name of billing destination 22 X Var. English (surname)
Required if using redirection type or API type
The credit card company decides whether or not additional information is necessary on the basis of the credit card user payment information given by the Merchant. Therefore, the more information with more accuracy the Merchant gives, the more possibility the credit card company does not require additional authentication.
4 billingFirstName First name of billing destination 22 X Var. Roman characters (first name)
Required if using redirection type or API type
5 billingPostalCode Billing postal code 7 X Var.
6 billingCity Billing prefecture 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
7 billingAddress1 Billing city/town 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
8 billingAddress2 Billing street/number 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
9 billingAddress3 Billing building name 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
10 billingPhone Billing phone number 20 X Var. Required if you do not link Email address.
11 workPhone Work phone number 25 X Var.
12 shippingPostalCode Delivery postal code 7 X Var.
13 shippingCity Delivery prefecture 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
14 shippingAddress1 Delivery city/town 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
15 shippingAddress2 Delivery street/number 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
16 shippingAddress3 Delivery building name 50 M Var. Please enter up to 50 bytes in total (up to 25 characters if entering full-width Japanese).
17 email Email address 254 X Var. Required if you do not link Billing phone number.
Object/function nameField nameDescriptionRemarks
responseResponse resultCredit card user payment information token result objectReturns the token of payment information for credit card user generated by SBPS.

Response Result (Success)

≪About Formats≫ 9: Numeric Type (1 Byte 0 to 9), X: Half-width Character String, M: Multi-byte Character String (No need for BASE64 encoding)

SEQ Tag element name Field name Chars Format Req'd Type Description Remarks
1resultResult status2XFixedOK: Request processing OK
2tokenResponseCredit card user payment information token responseVar.Credit card user payment information token result object
3tds2infoTokenCredit card user payment information tokenXVar.
4tds2infoTokenKeyCredit card user payment information token keyXVar.
5billingLastNameLast name of billing destination22XVar.Roman characters (last name)
6billingFirstNameFirst name of billing destination22XVar.Roman characters (first name)
7billingPostalCodeBilling postal code7XVar.
8billingCityBilling prefecture50MVar.
9billingAddress1Billing city/town50MVar.
10billingAddress2Billing street/number50MVar.
11billingAddress3Billing building name50MVar.
12billingPhoneBilling phone number20XVar.
13workPhoneWork phone number25XVar.
14shippingPostalCodeDelivery postal code7XVar.
15shippingCityDelivery prefecture50MVar.
16shippingAddress1Delivery city/town50MVar.
17shippingAddress2Delivery street/number50MVar.
18shippingAddress3Delivery building name50MVar.
19emailEmail address254XVar.

Response Result (Error)

≪About Formats≫ 9: Numeric Type (1 Byte 0 to 9), X: Half-width Character String, M: Multi-byte Character String (No need for BASE64 encoding)

SEQ Tag element name Field name Chars Format Req'd Type Description Remarks
1resultResult status2XFixedNG: Request processing NG
2errorCodeError code5XFixedSee list of error codes

The error code system to be returned is shown below.

Digits 1-2: Represent a type. (2-digit fixed length alphanumeric characters)
Digits 3-5: Represent a field. (3-digit fixed length alphanumeric characters)

The error code system to be returned is shown below.

Type of Codes

Code Type Description
Errors related to request information
03Required field errorNo value is specified in a required field.
04Attribute errorAllowed character attribute error
05Number of digits errorOutside of the allowable number of digits (bytes)
07Defined value errorA value other than the defined values is specified.
Error which occurs on the server
99System errorAn internal processing error occurred.

Field Codes

Code Type Description
Generation of a one-time ID token
001Merchant ID
002Service ID
003Last name of billing destination
004First name of billing destination
005Billing postal code
006Billing prefecture
007Billing city/town
008Billing street/number
009Billing building name
010Billing phone number
011Contact phone number
012Delivery postal code
013Delivery prefecture
014Delivery city/town
015Delivery street/number
016Delivery building name
017Email address
999(N/A)
Note: When there is an incomplete field, the code value corresponding to the applicable field is returned.

An example of obtaining the token of the payment information for the credit card user is shown below.
 Note that the sample code is still under development and is subject to change.

HTML & JavaScript
                     <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0.1//EN" "http://www.w3.org/TR/html4/strict.dtd"> 
<html lang="ja"> 
<head> 
    <script type="text/javascript" src="http://example.co.jp/token/js/com_sbps_system_ 	tds2infotoken.js"></script> 
    <script type="text/javascript"> 	    上記URLはサンプルとなります。 
    <!-- 	                            サービス開始時に別途ご案内いたします
    function doSubmit(){ 
        // トークン生成ロジック呼び出し 
       com_sbps_system_tds2.generateToken({
            merchantId : document.getElementById('merchant_id').value,
            serviceId : document.getElementById('service_id').value,
            billingLastName : document.getElementById('billingLastName').value,
            billingFirstName : document.getElementById('billingFirstName').value,             
            billingPostalCode : document.getElementById('billingPostalCode').value,
            billingCity : document.getElementById('billingCity').value,
            billingAddress1 : document.getElementById('billingAddress1').value,
            billingAddress2 : document.getElementById('billingAddress2').value,
            billingAddress3 : document.getElementById('billingAddress3').value,
            billingPhone : document.getElementById('billingPhone').value,
            workPhone : document.getElementById('workPhone').value,
            shippingPostalCode : document.getElementById('shippingPostalCode').value,
            shippingCity : document.getElementById('shippingCity').value,
            shippingAddress1 : document.getElementById('shippingAddress1').value,
            shippingAddress2 : document.getElementById('shippingAddress2').value,
            shippingAddress3 : document.getElementById('shippingAddress3').value,
            email : document.getElementById('email').value 
        }, afterGenerateToken); 
    } 
 
    var afterGenerateToken = function(response) {
        if (response.result == "OK") {
            document.getElementById('token').value = response.tokenResponse.tds2infoToken;             
            document.getElementById('tokenKey').value = response.tokenResponse.tds2infoTokenKey; 
 
            if(window.confirm('トークン取得しました。決済を実施します。')){ 
                document.getElementById('frm').submit(); 
            } else { 
                alert("キャンセルしました。"); 
            } 
        } else { 
            alert('トークン取得に失敗しました。'); 
        } 
    } 
    // --> 
    </script> 
</head> 
<body> 
    <h1>トークン生成サンプル</h1> 
    <form name="frm" id="frm" method="POST" action="Confirm.jsp"> 
 
    <dl> 
        <dt>マーチャントID</dt> 
        <dd><input type="text" id="merchant_id" name="merchant_id" maxlength="5" value="12345"></dd>         <dt>サービスID</dt> 
        <dd><input type="text" id="service_id" name="service_id" maxlength="3" value="001"></dd> 
        <dt>請求先名前(姓)</dt> 
        <dd><input type="text" id="billingLastName" name="billingLastName" maxlength="22" value="決済"></dd> 
 
     ・・・・・(略) 
 
        <dt>お届先住所ビル・マンション名</dt> 
        <dd><input type="text" id="shippingAddress3" name="shippingAddress3" maxlength="50" value=""></dd>         <dt>Emailアドレス</dt> 
        <dd><input type="text" id="email" name="email" maxlength="254" value="exsampl@exsample.com"></dd> 
    </dl> 
    <dl> 
        <dt>トークン</dt> 
        <dd><input type="text" id="tds2infoToken" name="token" value="" disabled></dd> 
        <dt>トークンキー</dt> 
        <dd><input type="text" id="tds2infoTokenKey" name="tokenKey" value="" disabled></dd> 
    </dl> 
        <table> 
            <tr><td> 
            <input type="button" name="btnSend" id="btnSend" value="送信" onClick="doSubmit()">             
            <input type="reset" name="btnReset" id="btnReset" value="リセット"> 
            </td></tr> 
        </table> 
    </form> 
</body> 
</html>
                

Validity Period for the Credit Card User Payment Information Token
It is recommended that the credit card user payment information token be acquired immediately prior to the time of payment request as it is unavailable after a certain period of time has elapsed from the time that the credit card user payment information token is issued. If it is no longer available, please acquire it again.

About Browser Settings
This document assumes that you are using a JavaScript-enabled browser. Operation is not guaranteed for environments in which JavaScript does not function.

Available Encryption Protocols
Due to the regulations of PCI DSS (which SBPS complies with), SSL 3.0 and TLS 1.0 cannot be used.
In addition, there is a high possibility that the use of TLS 1.1 will be prohibited in the future because its vulnerabilities as an encryption method have been disclosed. Therefore, Merchants shall use TLS 1.2.

Was this page helpful?