POST
/
api
/
v1
/
server-to-server-interface
/
paymentv2
curl --request POST \
  --url https://api-dev.paymentoptions.com/api/v1/api/v1/server-to-server-interface/paymentv2 \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '{
  "amount": "1000",
  "currency": "JPY",
  "card": {
    "cvc": "100",
    "expiry_month": "12",
    "expiry_year": "24",
    "name": "John Doe",
    "number": "4000002500003155"
  },
  "merchant_txn_ref": "qwe",
  "customer_ip": "127.0.0.1",
  "merchant_id": "< Merchant ID >",
  "return_url": {
    "webhook_url": "< Webhook url >",
    "success_url": "http://www.successurl.com/",
    "decline_url": "http://www.declineurl.com/"
  },
  "billing_address": {
    "country": "JP",
    "email": "billing@testemail.com",
    "phone_number": "8112345678",
    "address1": "1-2-3 Shinjuku",
    "city": "Shinjuku-ku",
    "state": "Tokyo",
    "postal_code": "1600022"
  },
  "shipping_address": {
    "country": "JP",
    "email": "shipping@testemail.com",
    "phone_number": "8112345678",
    "address1": "1-2-3 Shinjuku",
    "city": "Shinjuku-ku",
    "state": "Tokyo",
    "postal_code": "1600022"
  },
  "browser_info": {
    "acceptHeader": "text/html",
    "screenColorDepth": "48",
    "javaEnabled": false,
    "language": "en",
    "screenHeight": "1200",
    "screenWidth": "1600",
    "challengeWindow": "4",
    "userAgent": "Mozilla/4.0 (MSIE 6.0; Windows NT 5.0)"
  },
  "time_zone": "Asia/Kuala_Lumpur"
}'
{
  "url": "https://checkout-dev.paymentoptions.com/integration/3ds?_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMmIwMWRhZi1lMWI2LTRlMTYtOGJlOC1hN2YwNTQ1NmQyNWEiLCJpYXQiOjE3Mzc5NTI0MTIsImlzcyI6IjYwMzc4ZjcxNGEwZTg5MTZlMDQ1YjQzOCIsIk9yZ1VuaXRJZCI6IjYwMzc4ZjcxZDk2ODQzM2UyMmIxZTY5NCIsImV4cCI6MTczNzk1NDIxMn0.ytizEgQCt_hQEPn3mdJMAaKjP0L68WiGYkOzD_nHeWI&_c=400000&_a=YXNpYWJpbGw=",
  "statusCode": 200,
  "success": true,
  "redirect_url": "https://checkout-dev.paymentoptions.com/integration/3ds?_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMmIwMWRhZi1lMWI2LTRlMTYtOGJlOC1hN2YwNTQ1NmQyNWEiLCJpYXQiOjE3Mzc5NTI0MTIsImlzcyI6IjYwMzc4ZjcxNGEwZTg5MTZlMDQ1YjQzOCIsIk9yZ1VuaXRJZCI6IjYwMzc4ZjcxZDk2ODQzM2UyMmIxZTY5NCIsImV4cCI6MTczNzk1NDIxMn0.ytizEgQCt_hQEPn3mdJMAaKjP0L68WiGYkOzD_nHeWI&_c=400000&_a=YXNpYWJpbGw="
}

統合手順

ステップ1: 3Dリクエストを送信

3Dセキュア認証を開始するには、サーバーからサーバーへのリクエストを3Dセキュアエンドポイントに送信します。


ステップ2: リダイレクトURLを使用

レスポンスから redirect_url を使用して、ブラウザで3Dセキュアページを開きます。


ステップ3: 3Dセキュア認証完了後

カード保有者が認証を完了した後、発行者はリクエストを承認または拒否します。結果に基づいて、顧客は提供された success_url または decline_url にリダイレクトされます。

success_url

3DS認証が成功した場合、顧客を指定されたページにリダイレクトします。

decline_url

認証が拒否されたり失敗した場合、顧客をリダイレクトします。

ステップ4: Webhook通知

リダイレクトレスポンスに加えて、ゲートウェイは取引のステータスを確認するために指定した webhook_url にWebhook通知を送信します。これにより、顧客が3DSプロセス後にウェブサイトに戻らなくても、取引結果が確実に伝達されます。

Webhookサンプルレスポンス

{
  "success": true,
  "status_code": 200,
  "is_live": false,
  "transaction_type": "CAPTURE",
  "gateway_response": {
    "version": "1",
    "type": "INFO",
    "message": "Payment Successful.",
    "code": "INFO0000"
  },
  "merchant_details": {
    "legal_name": "<merchant name>",
    "mid": "DASMID",
    "merchant_txn_ref": "<merchant_txn_ref>"
  },
  "payment_details": {
    "amount": <amount>,
    "response_code": 0,
    "auth_code": null,
    "currency": "<currency>",
    "payment_method": "",
    "scheme": "VISA",
    "card": {
      "name": "<cardholder’s name>",
      "number": "<card number>",
      "exp_month": "MM",
      "exp_year": "YY"
    },
    "additional_data": {
      "payment_data_source": {
        "type": "card"
      }
    }
  },
  "transaction_details": {
    "id": "<transaction ref Id>",
    "ref": <ref>,
    "timestamp": "YYYY-MM-DDTHH:MM:SS.000Z",
    "merchant_txn_ref": "<merchant_txn_ref>"
  },
  "risk-details": {}
}

ステップ5: 3Dセキュア取引ステータスの取得

リクエスト属性

curl --location '<base_URL>/api/v1/server-to-server-interface/transaction/status/<Transaction Ref ID>' \
--header 'Authorization: Basic <API Key>' \
--header 'x-api-key: <x-api-key>' \
--header 'Content-Type: application/json'

レスポンス属性

{
    "success": true,
    "status_code": 200,
    "is_live": false,
    "transaction_type": "CAPTURE",
    "gateway_response": {
        "version": "1",
        "type": "INFO",
        "message": "Payment Successful.",
        "code": "INFO0000"
    },
    "merchant_details": {
        "legal_name": "<merchant name>",
        "mid": "<DASMID>",
        "merchant_txn_ref": "<merchant_txn_ref>"
    },
    "payment_details": {
        "amount": <amount>,
        "response_code": 0,
        "responseDescription": "The transaction was completed successfully.",
        "auth_code": null,
        "currency": "<currency>",
        "payment_method": null,
        "scheme": "<scheme>",
        "card": {
            "name": "<cardholder name>",
            "number": "<card_number>",
            "exp_month": "MM",
            "exp_year": "YY"
        },
        "additional_data": {
            "payment_data_source": {
                "type": "card"
            }
        }
    },
    "transaction_details": {
        "id": "<Transaction Ref Id>",
        "ref": <ref>,
        "timestamp": "YYYY-MM-DDTHH:MM:SS.000Z",
        "billing_details": {
            "billing_address": {
                "country": "<country code>",
                "email": "<email>",
                "address1": "<address1>",
                "phone_number": "<phone_number>",
                "city": "<city>",
                "state": "<state>",
                "postal_code": "<postal_code>"
            },
            "shipping_address": {
                "country": "<country code>",
                "email": "<email>",
                "address1": "<address1>",
                "phone_number": "<phone_number>",
                "city": "<city>",
                "state": "<state>",
                "postal_code": "<postal_code>"
            }
        }
    },
    "risk_details": {
        "risk_score": null
    }
}

リクエスト属性

Authorizations

Authorization
string
header
required

認証のためのAPIキー。形式:'Basic YOUR_API_KEY_HERE'

x-api-key
string
header
required

x-api-key専用のAPIキー。

Body

application/json
3Dセキュア支払いトランザクションを処理するためのリクエストペイロード。
amount
string
required

取引の金額。

Example:

"1000"

currency
string
required

商品の処理通貨の略称(例:JPY)。

Maximum length: 3
Example:

"JPY"

card
object
required

カードの詳細を含むJSONオブジェクト。

merchant_txn_ref
string
required

加盟店の取引参照ID。

Maximum length: 45
Example:

"qwe"

customer_ip
string
required

カード所有者のIPアドレス。

Maximum length: 45
Example:

"127.0.0.1"

merchant_id
string
required

加盟店ID(DASMID)。

Maximum length: 128
Example:

"< Merchant ID >"

billing_address
object
required

カード所有者の請求先住所を含むJSONオブジェクト。

return_url
object

返却URLを含むJSONオブジェクト。(このフィールドは3DS取引で必須です。)

shipping_address
object

カード所有者の配送先住所を含むJSONオブジェクト(オプション)。

browser_info
object

カード所有者が使用するブラウザの詳細を含むJSONオブジェクト(オプション)。

time_zone
string

取引の国別タイムゾーン。

Maximum length: 128
Example:

"Asia/Kuala_Lumpur"

Response

200 - application/json
3Dセキュア取引が正常に開始されました
url
string

3Dセキュア認証ページのURL。

Example:

"https://checkout-dev.paymentoptions.com/integration/3ds?_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMmIwMWRhZi1lMWI2LTRlMTYtOGJlOC1hN2YwNTQ1NmQyNWEiLCJpYXQiOjE3Mzc5NTI0MTIsImlzcyI6IjYwMzc4ZjcxNGEwZTg5MTZlMDQ1YjQzOCIsIk9yZ1VuaXRJZCI6IjYwMzc4ZjcxZDk2ODQzM2UyMmIxZTY5NCIsImV4cCI6MTczNzk1NDIxMn0.ytizEgQCt_hQEPn3mdJMAaKjP0L68WiGYkOzD_nHeWI&_c=400000&_a=YXNpYWJpbGw="

statusCode
integer

応答ステータスコード。

Example:

200

success
boolean

取引が成功したかどうかを示します。

Example:

true

redirect_url
string

3Dセキュア認証のリダイレクトURL。

Example:

"https://checkout-dev.paymentoptions.com/integration/3ds?_token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJmMmIwMWRhZi1lMWI2LTRlMTYtOGJlOC1hN2YwNTQ1NmQyNWEiLCJpYXQiOjE3Mzc5NTI0MTIsImlzcyI6IjYwMzc4ZjcxNGEwZTg5MTZlMDQ1YjQzOCIsIk9yZ1VuaXRJZCI6IjYwMzc4ZjcxZDk2ODQzM2UyMmIxZTY5NCIsImV4cCI6MTczNzk1NDIxMn0.ytizEgQCt_hQEPn3mdJMAaKjP0L68WiGYkOzD_nHeWI&_c=400000&_a=YXNpYWJpbGw="