Sourceの作成
代替決済手段用の決済ソースを作成します。SourceはPromptPay QRコード、モバイルバンキング、インターネットバンキング、分割払いなどを通じて顧客が支払いを行うことを可能にします。
API認証情報
リクエストパラメータ
必須 - 3項目必須パラメータ
`amount`INTEGER(required)
最小通貨単位での金額(THBの場合はサタン、USDの場合はセント、JPYの場合は円)。例: 100000サタン = 1,000 THB。
`currency`STRING(required)
ISO 4217の3文字通貨コード(小文字)。決済方法のタイプと一致する必要があります。
`type`STRING(required)
決済方法のタイプ。タイプによってサポートされる通貨が異なります。
推奨 - 2項目推奨パラメータ
追加 - 10項目追加パラメータ
レスポンス
200
成功Sourceが正常に作成されました。レスポンスにはQRコードやリダイレクトURLなどの決済固有のデータが含まれます。
一般的なレスポンスフィールド:
id- 課金作成時に使用するSource ID(src_*)type- 決済方法のタイプflow- 決済フロー: offline(QRコード)、redirect(ウェブ)、またはapp_redirect(モバイルアプリ)amount- 最小通貨単位でのSourceの金額currency- 通貨コードscannable_code- QRベース決済用のQRコードデータcharge_status- このSourceで作成された課金のステータス
400
不正なリクエストリクエストの検証に失敗しました。詳細はエラーメッセージをご確認ください。
よくある原因:
- 必須フィールドの欠落(
amount、currency、type) - 決済タイプに対して無効な通貨(例: PromptPayにSGD)
- タイプ固有の必須フィールドの欠落(例: 分割払いのinstallment_term)
- 無効な決済タイプ
401
認証されていません認証に失敗しました。APIキーが無効または欠落しています。
よくある原因:
- Authorizationヘッダーの欠落
- 無効な公開鍵
- 公開鍵の代わりに秘密鍵を使用している
- HTTP Basic認証の形式が正しくない
422
処理できないエンティティビジネスロジックの制約によりリクエストの検証に失敗しました。
よくある原因:
- 決済タイプの最小金額を下回っています
- 決済タイプの最大金額を超えています
- アカウントで決済タイプが有効化されていません
- 選択した銀行に対して無効な分割払い期間
コードサンプル
- cURL
- Ruby
- Python
- Node.js
- PHP
- Java
- C#
- Go
curl https://api.omise.co/sources \
-u pkey_test_5xuy4w91xqz7d1w9u0t: \
-d "amount=100000" \
-d "currency=thb" \
-d "type=promptpay"
require 'omise'
Omise.api_key = 'pkey_test_5xuy4w91xqz7d1w9u0t'
source = Omise::Source.create({
amount: 100000,
currency: 'thb',
type: 'promptpay'
})
import omise
omise.api_public = 'pkey_test_5xuy4w91xqz7d1w9u0t'
source = omise.Source.create(
amount=100000,
currency='thb',
type='promptpay'
)
const omise = require('omise')({
publicKey: 'pkey_test_5xuy4w91xqz7d1w9u0t'
});
const source = await omise.sources.create({
amount: 100000,
currency: 'thb',
type: 'promptpay'
});
<?php
define('OMISE_PUBLIC_KEY', 'pkey_test_5xuy4w91xqz7d1w9u0t');
$source = OmiseSource::create([
'amount' => 100000,
'currency' => 'thb',
'type' => 'promptpay'
]);
Client client = new Client.Builder()
.publicKey("pkey_test_5xuy4w91xqz7d1w9u0t")
.build();
Source source = client.sources().create()
.amount(100000L)
.currency("thb")
.type("promptpay")
.send();
var client = new Client("pkey_test_5xuy4w91xqz7d1w9u0t");
var source = await client.Sources.Create(new CreateSourceRequest
{
Amount = 100000,
Currency = "thb",
Type = "promptpay"
});
client, _ := omise.NewClient(
"pkey_test_5xuy4w91xqz7d1w9u0t",
"",
)
source, _ := client.Sources().Create(&operations.CreateSource{
Amount: 100000,
Currency: "thb",
Type: "promptpay",
})
エラーと結果コード
一般的なエラーコード
| コード | 説明 | 解決方法 |
|---|---|---|
bad_request | パラメータの欠落または無効 | すべての必須フィールドが提供されているか確認してください |
authentication_failure | 無効なAPIキー | 公開鍵が正しいことを確認してください |
currency_not_supported | 決済タイプに対して通貨がサポートされていません | 決済タイプが通貨をサポートしているか確認してください |
amount_too_low | 最小金額を下回っています | 決済タイプの最小金額を確認してください |
amount_too_high | 最大金額を超えています | 決済タイプの最大金額を確認してください |
payment_method_not_allowed | 決済タイプが有効化されていません | Omiseに連絡して決済方法を有効化してください |
Sourceフロータイプ
| フロー | 説明 |
|---|---|
offline | 顧客がQRコードをスキャン(PromptPay、Alipay) |
redirect | 顧客がウェブページにリダイレクト(インターネットバンキング) |
app_redirect | 顧客がモバイルアプリにリダイレクト(モバイルバンキング) |
試してみる
必須 - 3項目
推奨 - 2項目
追加 - 10項目