Tokenの作成
クレジットカード情報から使い捨てのTokenを作成します。Tokenはカードデータを安全に表現し、サーバー上で機密性の高いカード情報を扱うことなく課金を作成するために使用できます。
API認証情報
リクエストパラメータ
必須 - 4項目必須パラメータ
`card[name]`STRING(required)
カードに記載されているカード名義人の名前。
`card[number]`STRING(required)
スペースやダッシュなしのカード番号。カードの種類によって13〜19桁。
`card[expiration_month]`INTEGER(required)
カード有効期限の月をMまたはMM形式で指定。
`card[expiration_year]`INTEGER(required)
カード有効期限の年をYYまたはYYYY形式で指定。
推奨 - 7項目推奨パラメータ
追加 - 2項目追加パラメータ
レスポンス
200
成功Tokenが正常に作成されました。Token IDを使用して課金を作成したり、顧客に紐付けることができます。
レスポンスに含まれる内容:
id- 課金作成時に使用するToken ID(tokn_*)used- Tokenが使用されたかどうか(新規Tokenの場合はfalse)card- サニタイズされた情報を含むcardオブジェクト(下4桁のみ)card.brand- カードブランド(Visa、Mastercard、JCBなど)card.last_digits- カード番号の下4桁card.security_code_check- CVVが検証されたかどうかcharge_status- Tokenで作成された課金のステータス(未使用の場合はnull)
400
不正なリクエストリクエストの検証に失敗しました。詳細はエラーメッセージをご確認ください。
よくある原因:
- 必須フィールドの欠落(
card[name]、card[number]、card[expiration_month]、card[expiration_year]) - カード番号の形式が無効
- 有効期限が無効
- カード番号にスペースやダッシュが含まれている
401
認証されていません認証に失敗しました。APIキーが無効または欠落しています。
よくある原因:
- Authorizationヘッダーの欠落
- 無効な公開鍵
- 公開鍵の代わりに秘密鍵を使用している
- HTTP Basic認証の形式が正しくない
402
支払いが必要カードの検証に失敗しました。
よくある原因:
- カード番号がLuhn検証に失敗しました
- カードの有効期限が切れています
- セキュリティコードの形式が無効
- カードブランドがサポートされていません
コードサンプル
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://vault.omise.co/tokens \
-u pkey_test_5xuy4w91xqz7d1w9u0t: \
-d "card[name]=JOHN DOE" \
-d "card[number]=4242424242424242" \
-d "card[expiration_month]=12" \
-d "card[expiration_year]=2025" \
-d "card[security_code]=123"
require 'omise'
Omise.api_key = 'pkey_test_5xuy4w91xqz7d1w9u0t'
token = Omise::Token.create({
card: {
name: 'JOHN DOE',
number: '4242424242424242',
expiration_month: 12,
expiration_year: 2025,
security_code: '123'
}
})
import omise
omise.api_public = 'pkey_test_5xuy4w91xqz7d1w9u0t'
token = omise.Token.create(
card={
'name': 'JOHN DOE',
'number': '4242424242424242',
'expiration_month': 12,
'expiration_year': 2025,
'security_code': '123'
}
)
const omise = require('omise')({
publicKey: 'pkey_test_5xuy4w91xqz7d1w9u0t'
});
const token = await omise.tokens.create({
card: {
name: 'JOHN DOE',
number: '4242424242424242',
expiration_month: 12,
expiration_year: 2025,
security_code: '123'
}
});
<?php
define('OMISE_PUBLIC_KEY', 'pkey_test_5xuy4w91xqz7d1w9u0t');
$token = OmiseToken::create([
'card' => [
'name' => 'JOHN DOE',
'number' => '4242424242424242',
'expiration_month' => 12,
'expiration_year' => 2025,
'security_code' => '123'
]
]);
Client client = new Client.Builder()
.publicKey("pkey_test_5xuy4w91xqz7d1w9u0t")
.build();
Token token = client.tokens().create()
.card(new Card.Create()
.name("JOHN DOE")
.number("4242424242424242")
.expirationMonth(12)
.expirationYear(2025)
.securityCode("123"))
.send();
var client = new Client("pkey_test_5xuy4w91xqz7d1w9u0t");
var token = await client.Tokens.Create(new CreateTokenRequest
{
Card = new CardRequest
{
Name = "JOHN DOE",
Number = "4242424242424242",
ExpirationMonth = 12,
ExpirationYear = 2025,
SecurityCode = "123"
}
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"",
)
token, _ := client.Tokens().Create(&operations.CreateToken{
Name: "JOHN DOE",
Number: "4242424242424242",
ExpirationMonth: 12,
ExpirationYear: 2025,
SecurityCode: "123",
})
エラーと結果コード
一般的なエラーコード
| コード | 説明 | 解決方法 |
|---|---|---|
bad_request | パラメータの欠落または無効 | すべての必須フィールドが提供されているか確認してください |
authentication_failure | 無効なAPIキー | 公開鍵が正しいことを確認してください |
invalid_card | カード番号が無効 | カード番号がLuhn検証に合格することを確認してください |
invalid_expiration_date | カードの有効期限切れまたは無効な日付 | 有効期限の月と年を確認してください |
invalid_security_code | CVVの形式が無効 | CVVが3〜4桁であることを確認してください |
used_token | Tokenは既に使用されています | 課金ごとに新しいTokenを作成してください |
テスト用カード番号
| カード番号 | ブランド | 3D Secure |
|---|---|---|
| 4242424242424242 | Visa | なし |
| 4000000000003063 | Visa | あり |
| 5555555555554444 | Mastercard | なし |
| 4111111111111111 | Visa | なし |
試してみる
必須 - 4項目
推奨 - 7項目
追加 - 2項目