メインコンテンツへスキップ

Omise.js APIリファレンス

すべてのOmise.jsメソッド、パラメータ、レスポンスオブジェクトの完全なリファレンス。

初期化

Omise.setPublicKey()

API呼び出しを行う前にOmise公開鍵を設定します。

シグネチャ:

Omise.setPublicKey(publicKey: string): void

パラメータ:

パラメータ必須説明
publicKeystringpkey_で始まるOmise公開鍵

例:

Omise.setPublicKey("pkey_test_5xs8t3mho5d4pbbkjz1dk");

注意事項:

  • 他のすべてのOmise.jsメソッドを呼び出す前に実行する必要があります
  • 開発環境ではテストキー(pkey_test_...)を使用してください
  • 本番環境ではライブキー(pkey_live_...)を使用してください
  • キーはメモリにのみ保存され、永続化されません

トークン作成

Omise.createToken()

決済データのトークン化された表現を作成します。

シグネチャ:

Omise.createToken(
type: string,
data: object,
callback: (statusCode: number, response: object) => void
): void

パラメータ:

パラメータ必須説明
typestringトークンタイプ: "card" または "tokenization"
dataobjectカードデータまたはトークン化データ
callbackfunction(statusCode, response)を受け取るコールバック関数

カードトークン

カード情報からトークンを作成します。

カードデータオブジェクト:

{
name: string, // カード名義人
number: string, // カード番号(13-19桁)
expiration_month: number, // 月(1-12)
expiration_year: number, // 年(例: 2027)
security_code: string, // CVV/CVC(3-4桁)

// オプションの請求先住所
city?: string,
postal_code?: string,
country?: string // ISO 3166-1 alpha-2(例: "TH")
}

例:

Omise.createToken("card", {
name: "John Doe",
number: "4242424242424242",
expiration_month: 12,
expiration_year: 2027,
security_code: "123",
city: "Bangkok",
postal_code: "10110",
country: "TH"
}, function(statusCode, response) {
if (statusCode === 200) {
console.log("Token ID:", response.id);
// response.id = "tokn_test_5xs8t3mho5d4pbbkjz1dk"
} else {
console.error("Error:", response.message);
}
});

デジタルウォレットトークン

デジタルウォレットデータ(Google Pay、Apple Pay)からトークンを作成します。

トークン化データオブジェクト:

{
method: string, // "googlepay" または "applepay"
data: object // 決済プロバイダーからのトークンデータ
}

Google Payの例:

const googlePayToken = {
signature: "...",
protocolVersion: "ECv2",
signedMessage: "..."
};

Omise.createToken("tokenization", {
method: "googlepay",
data: googlePayToken
}, callback);

Apple Payの例:

const applePayToken = {
paymentData: {...},
transactionIdentifier: "...",
paymentMethod: {...}
};

Omise.createToken("tokenization", {
method: "applepay",
data: applePayToken
}, callback);

トークンレスポンス

成功レスポンス(ステータス200):

{
object: "token",
id: "tokn_test_5xs8t3mho5d4pbbkjz1dk",
livemode: false,
location: "/tokens/tokn_test_5xs8t3mho5d4pbbkjz1dk",
used: false,
charge_status: "unknown",
card: {
object: "card",
id: "card_test_5xs8t3mho5d4pbbkjz1dk",
livemode: false,
location: null,
country: "us",
city: null,
postal_code: null,
financing: "",
bank: "",
last_digits: "4242",
brand: "Visa",
expiration_month: 12,
expiration_year: 2027,
fingerprint: "XjOdjaoKvKLxNFvbxdPo7hpO8VRQVOM5bZt9e1D4NG0=",
name: "John Doe",
security_code_check: true,
tokenization_method: null,
created_at: "2025-02-06T10:30:45Z"
},
created_at: "2025-02-06T10:30:45Z"
}

エラーレスポンス(ステータス400+):

{
object: "error",
location: "https://docs.omise.co/api-errors#invalid-card",
code: "invalid_card",
message: "number is invalid"
}

ソース作成

Omise.createSource()

代替決済方法の決済ソースを作成します。

シグネチャ:

Omise.createSource(
type: string,
data: object,
callback: (statusCode: number, response: object) => void
): void

パラメータ:

パラメータ必須説明
typestring決済方法タイプ
dataobject金額と通貨を含むソースデータ
callbackfunction(statusCode, response)を受け取るコールバック関数

サポートされている決済方法

PromptPay

Omise.createSource("promptpay", {
amount: 50000, // 必須
currency: "THB" // 必須
}, callback);

PayNow(シンガポール)

Omise.createSource("paynow", {
amount: 5000, // 必須
currency: "SGD" // 必須
}, callback);

TrueMoney Wallet

Omise.createSource("truemoney", {
amount: 30000, // 必須
currency: "THB", // 必須
phone_number: "+66876543210" // 必須
}, callback);

Rabbit LINE Pay

Omise.createSource("rabbit_linepay", {
amount: 20000, // 必須
currency: "THB" // 必須
}, callback);

モバイルバンキング

// SCB Easy App
Omise.createSource("mobile_banking_scb", {
amount: 40000,
currency: "THB"
}, callback);

// KBank モバイルバンキング
Omise.createSource("mobile_banking_kbank", {
amount: 40000,
currency: "THB"
}, callback);

// Bangkok Bank モバイルバンキング
Omise.createSource("mobile_banking_bay", {
amount: 40000,
currency: "THB"
}, callback);

// Krung Thai モバイルバンキング
Omise.createSource("mobile_banking_ktb", {
amount: 40000,
currency: "THB"
}, callback);

電子マネー

// GrabPay
Omise.createSource("grabpay", {
amount: 10000,
currency: "SGD" // または "THB", "MYR"
}, callback);

// ShopeePay
Omise.createSource("shopeepay", {
amount: 25000,
currency: "THB"
}, callback);

// Boost(マレーシア)
Omise.createSource("boost", {
amount: 3000,
currency: "MYR"
}, callback);

// Touch 'n Go(マレーシア)
Omise.createSource("touch_n_go", {
amount: 5000,
currency: "MYR"
}, callback);

// Alipay
Omise.createSource("alipay", {
amount: 50000,
currency: "THB"
}, callback);

// WeChat Pay
Omise.createSource("wechat_pay", {
amount: 50000,
currency: "THB"
}, callback);

銀行振込

// FPX(マレーシア)
Omise.createSource("fpx", {
amount: 10000,
currency: "MYR",
email: "customer@example.com", // 必須
bank: "test" // 銀行コード(FPXドキュメントを参照)
}, callback);

// DuitNow QR(マレーシア)
Omise.createSource("duitnow_qr", {
amount: 5000,
currency: "MYR"
}, callback);

分割払い

// Krungthai Card 分割払い
Omise.createSource("installment_kbank", {
amount: 50000,
currency: "THB",
installment_term: 6 // 3, 6, 10ヶ月
}, callback);

// Bay 分割払い
Omise.createSource("installment_bay", {
amount: 50000,
currency: "THB",
installment_term: 10
}, callback);

// First Choice 分割払い
Omise.createSource("installment_first_choice", {
amount: 30000,
currency: "THB",
installment_term: 6
}, callback);

// KTC 分割払い
Omise.createSource("installment_ktc", {
amount: 50000,
currency: "THB",
installment_term: 6
}, callback);

// SCB 分割払い
Omise.createSource("installment_scb", {
amount: 50000,
currency: "THB",
installment_term: 10
}, callback);

後払い決済(BNPL)

// Atome
Omise.createSource("atome", {
amount: 50000,
currency: "THB",
phone_number: "+66876543210", // 必須
email: "customer@example.com", // 必須
name: "John Doe", // 必須
shipping: { // 物理的な商品の場合は必須
address: {
country: "TH",
city: "Bangkok",
postal_code: "10110",
state: "Bangkok",
street1: "123 Main St"
}
},
items: [ // オプションですが推奨
{
sku: "PROD-001",
name: "Product Name",
quantity: 1,
amount: 50000,
currency: "THB"
}
]
}, callback);

ソースレスポンス

成功レスポンス(ステータス200):

{
object: "source",
id: "src_test_5xs8t3mho5d4pbbkjz1dk",
livemode: false,
location: "/sources/src_test_5xs8t3mho5d4pbbkjz1dk",
type: "promptpay",
flow: "redirect",
amount: 50000,
currency: "THB",
charge_status: "unknown",
references: {
qr_code: "00020101021..." // QRベースの決済の場合
},
created_at: "2025-02-06T10:30:45Z"
}

OmiseCard(プリビルトフォーム)

OmiseCard.configure()

プリビルト決済フォームを設定します。

シグネチャ:

OmiseCard.configure(options: object): void

オプション:

{
// 必須
publicKey: string,
amount: number,
currency: string,

// 決済方法
defaultPaymentMethod?: string,
otherPaymentMethods?: string[],

// UIカスタマイズ
frameLabel?: string,
frameDescription?: string,
submitLabel?: string,
buttonLabel?: string,
locale?: string, // "en", "th", "ja"
image?: string, // ロゴURL

// 顧客データ
name?: string,
email?: string,
phoneNumber?: string,

// その他
location?: "yes" | "no",
metadata?: object,

// コールバック
onCreateTokenSuccess: (nonce: string) => void,
onFormClosed?: () => void
}

例:

OmiseCard.configure({
publicKey: "pkey_test_5xs8t3mho5d4pbbkjz1dk",
amount: 50000,
currency: "THB",
defaultPaymentMethod: "credit_card",
otherPaymentMethods: ["promptpay", "truemoney"],
frameLabel: "ACME Store",
submitLabel: "Pay Now",
locale: "en",
onCreateTokenSuccess: (nonce) => {
console.log("Created:", nonce);
}
});

OmiseCard.open()

決済フォームモーダルを開きます。

シグネチャ:

OmiseCard.open(): void

例:

document.getElementById('pay-button').addEventListener('click', () => {
OmiseCard.open();
});

OmiseCard.close()

決済フォームモーダルを閉じます。

シグネチャ:

OmiseCard.close(): void

例:

OmiseCard.close();

エラーコード

トークン作成エラー

コードメッセージ解決方法
invalid_cardnumber is invalidカード番号の形式を確認してください
invalid_cardexpiration date cannot be in the past将来の日付を使用してください
invalid_cardsecurity code failed verificationCVVを確認してください
empty_cardname can't be blankカード名義人を入力してください
invalid_expiration_monthexpiration month is invalid1-12を使用してください
invalid_expiration_yearexpiration year is invalid4桁の年を使用してください
invalid_security_codesecurity code is invalid3-4桁のCVVを入力してください
invalid_numbernumber is invalidカード番号を確認してください
invalid_countrycountry is invalidISO 3166-1 alpha-2を使用してください
public_key_is_requiredpublic key is required最初にsetPublicKeyを呼び出してください

ソース作成エラー

コードメッセージ解決方法
invalid_amountamount is invalid金額は正の整数である必要があります
invalid_currencycurrency is invalid決済方法に適した通貨を使用してください
phone_number_requiredphone number is required電話番号を入力してください
email_requiredemail is requiredメールアドレスを入力してください
invalid_phone_numberphone number is invalidE.164形式(+66...)を使用してください
invalid_emailemail is invalid有効なメールアドレスを入力してください

HTTPステータスコード

ステータス意味アクション
200成功レスポンスを処理してください
400不正なリクエストリクエストデータを修正してください
401認証エラー公開鍵を確認してください
402決済が必要Omiseサポートにお問い合わせください
404見つかりませんエンドポイントURLを確認してください
429リクエスト過多レート制限を実装してください
500サーバーエラー再試行するかサポートにお問い合わせください
503サービス利用不可後で再試行してください

型定義

TypeScript

declare global {
interface Window {
Omise: {
setPublicKey(publicKey: string): void;
createToken(
type: 'card',
data: CardData,
callback: TokenCallback
): void;
createToken(
type: 'tokenization',
data: TokenizationData,
callback: TokenCallback
): void;
createSource(
type: string,
data: SourceData,
callback: SourceCallback
): void;
};
OmiseCard: {
configure(options: OmiseCardOptions): void;
open(): void;
close(): void;
};
}
}

interface CardData {
name: string;
number: string;
expiration_month: number;
expiration_year: number;
security_code: string;
city?: string;
postal_code?: string;
country?: string;
}

interface TokenizationData {
method: 'googlepay' | 'applepay';
data: any;
}

interface SourceData {
amount: number;
currency: string;
[key: string]: any;
}

type TokenCallback = (statusCode: number, response: TokenResponse | ErrorResponse) => void;
type SourceCallback = (statusCode: number, response: SourceResponse | ErrorResponse) => void;

interface TokenResponse {
object: 'token';
id: string;
livemode: boolean;
used: boolean;
card: CardObject;
created_at: string;
}

interface SourceResponse {
object: 'source';
id: string;
livemode: boolean;
type: string;
flow: string;
amount: number;
currency: string;
created_at: string;
}

interface ErrorResponse {
object: 'error';
code: string;
message: string;
}

interface OmiseCardOptions {
publicKey: string;
amount: number;
currency: string;
defaultPaymentMethod?: string;
otherPaymentMethods?: string[];
frameLabel?: string;
frameDescription?: string;
submitLabel?: string;
buttonLabel?: string;
locale?: 'en' | 'th' | 'ja';
image?: string;
name?: string;
email?: string;
phoneNumber?: string;
location?: 'yes' | 'no';
metadata?: Record<string, any>;
onCreateTokenSuccess: (nonce: string) => void;
onFormClosed?: () => void;
}

ブラウザ互換性

機能ChromeFirefoxSafariEdge
createToken60+55+11+79+
createSource60+55+11+79+
OmiseCard60+55+11+79+

モバイル:

  • iOS Safari 11+
  • Chrome for Android 60+

関連リソース


サポート