トークンの作成
クレジットカード情報から使い捨てトークンを作成します。トークンはカードデータを安全に表現し、サーバーで機密性の高いカード情報を処理することなく課金を作成するために使用できます。
リクエストパラメータ
必須 - 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
トランザクション成功トークンが正常に作成されました。トークンIDを使用して課金を作成するか、顧客に紐付けることができます。
レスポンスに含まれる内容:
id- 課金作成時に使用するトークンID(tokn_*)used- トークンが使用済みかどうか(新しいトークンの場合はfalse)card- サニタイズされた情報を含むカードオブジェクト(下4桁のみ)card.brand- カードブランド(Visa、Mastercard、JCBなど)card.last_digits- カード番号の下4桁card.security_code_check- CVVが検証されたかどうかcharge_status- トークンで作成された課金のステータス(未使用の場合はnull)created_at- トークン作成のタイムスタンプ(ISO 8601)
400
不正なリクエストリクエストの検証に失敗しました。詳細はエラーメッセージを確認してください。
一般的な原因:
- 必須フィールドの欠落(
card[name]、card[number]、card[expiration_month]、card[expiration_year]) - 無効なカード番号形式
- 無効な有効期限
- カード番号にスペースまたはハイフンが含まれている
401
認証エラー認証に失敗しました。APIキーが無効または欠落しています。
一般的な原因:
- Authorizationヘッダーの欠落
- 無効な公開鍵
- 公開鍵ではなく秘密鍵を使用している
- HTTP Basic Auth形式が正しくない
402
支払いが必要カードの検証に失敗しました。
一般的な原因:
- カード番号がLuhn検証に失敗した
- カードの有効期限が切れている
- 無効なセキュリティコード形式
- カードブランドがサポートされていない
5xx
サーバーエラーサーバー側でエラーが発生しました。稀ですが、適切に処理する必要があります。
対処方法:
- 指数バックオフでリクエストを再試行する
- status.omise.coでサービスインシデントを確認する
- 詳細なガイダンスについてはエラー処理を参照
コードサンプル
- 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 | トークンは既に使用済み | 各課金に対して新しいトークンを作成 |
テストカード番号
| カード番号 | ブランド | 3Dセキュア |
|---|---|---|
| 4242424242424242 | Visa | なし |
| 4000000000003063 | Visa | あり |
| 5555555555554444 | Mastercard | なし |
| 4111111111111111 | Visa | なし |
API認証情報
試してみる
必須 - 4項目
推奨 - 7項目
追加 - 2項目
あなたのIP:
...読み込み中...