Charge(課金)
Charges(課金)は、クレジットカードへ課金をするためのAPIです。このAPIを用いることで、新規課金取引の作成、すべての課金履歴の表示、個別の課金情報の閲覧、払い戻し処理等を行うことができます。新規に課金を作成するときには、トークン、Customer(顧客)オブジェクトまたはCustomer(顧客)オブジェクトとCard(カード)オブジェクトを使った3種類の課金方法があり、用途によって使い分けをすることができます。
Attributes
Name | Type | Description |
---|---|---|
object | string | このJSONレスポンスがChargeによるものを示す値の |
id | string |
|
livemode | boolean | 本番モード ( |
location | string | 現在の |
acquirer_reference_number | string | 顧客が行った課金の参照番号です。この情報は、VisaおよびMastercardに向けた決済レポートの一部として送信されます。 |
amount | integer | smallest currency unit(最小通貨単位)での課金金額。 |
approval_code | string | Approval code |
authorization_type | string | 実売上化する最終的な取引金額を決定。詳細はパラメータを参照。 |
authorize_uri | string | 決済承認のためのURI(例:3-D Secure)。 |
authorized | boolean | 課金が承認されたかどうか。 |
authorized_amount | integer | 特定のカードへの課金で、与信確保された金額の上限。 |
authorized_at | string | TBD |
branch | object_id_expandable | 加盟店が端末を設置している販売拠点。 |
can_perform_void | boolean | TBD |
capturable | boolean | 課金を売上確定できるか。 |
capture | boolean | 課金が即時売上確定と設定されているかどうか。 |
captured_amount | integer | 実売上化の額 |
card | card | card(カード) 課金されたオブジェクト(カードが課金された場合) |
created_at | string | ISO 8601 形式 ( |
currency | string | ISO 4217 コードで定義された3文字の課金通貨 |
customer | object_id_expandable | 課金に紐付けられた |
description | string | 課金の説明。 |
device | object_id_expandable | 端末に接続されているハードウェア。 |
disputable | boolean | 課金がチャージバックできるかどうか。 |
dispute | dispute | Dispute(チャージバック )オブジェクト(請求に異議がある場合)。 |
expired | boolean | 課金の有効期限が切れたかどうか。 |
expired_at | string | ISO 8601形式 ( |
expires_at | string | 課金の有効期限はISO 8601形式( |
failure_code | string |
|
failure_message | string |
|
fee | integer | Opn Payments課金手数料。 |
fee_vat | integer | 「手数料」にかかる付加価値税(VAT)。 |
funding_amount | integer |
|
funding_currency | string |
|
interest | integer | [分割払い期間](/installment-payment)の間に顧客または加盟店が支払う利息。 |
interest_vat | integer | 「利子」にかかる付加価値税(VAT)。 |
ip | string | 課金に添付されているIPアドレス。 |
link | object_id_expandable | 課金の |
linked_account | linked_account | TBD |
merchant_advice | string | 決済エラーが発生した際の処理方法に関する加盟店へのアドバイスです。 |
merchant_name | string | 課金を実行したサブマーチャントの名前です。 注: このフィールドは、加盟店がプラットフォーム向けソリューションを導入している場合にのみ適用されます。プラットフォーム向けソリューションのご利用については、サポートまでお問い合わせください。 |
merchant_uid | string | 課金を実行したサブマーチャントのIDです。 注: このフィールドは、加盟店がプラットフォーム向けソリューションを導入している場合にのみ適用されます。プラットフォーム向けソリューションのご利用については、サポートまでお問い合わせください。 |
metadata | object | メタデータをカスタムする (例 |
net | integer | 手数料、利子、およびVATを差引後のfunding_amount。 |
paid | boolean | 課金が決済されたかどうか。 |
paid_at | string | 課金が支払われたISO 8601形式 ( |
partially_refundable | boolean | 各種課金(クレジットカード、QRコード、PromptPay)が一部返金が可能かどうかを示します。 |
platform_fee | object | プラットフォーム手数料 |
refundable | boolean | 課金された返金が可能かどうか。 |
refunded_amount | integer | 返金された金額。 |
refunds | list | 返金オブジェクトのList。 |
return_uri | string | 3Dセキュアカード認証またはその他の[ソース](/ source-api)承認後に顧客がリダイレクトされるURI |
reversed | boolean | 課金承認が取り消されたかどうか。 |
reversed_at | string | リバース課金されたISO 8601 形式 ( |
reversible | boolean | リバース課金の取り消しが可能かどうか。 |
schedule | object_id_expandable | 課金に紐付けられているスケジュール。 |
source | source | 課金されたソースSource(ソースが課金された場合)。 |
status | string | 課金のステータス。 |
terminal | object_id_expandable | 販売拠点のPOS |
transaction | object_id_expandable | 課金の |
transaction_fees | object | 決済手数料 |
unmanaged_payment | object | 管理されていない決済情報 |
voided | boolean | 課金が無効化されているかどうか。 |
zero_interest_installments | boolean | 加盟店が分割払いの支払いに関する利子を負担するかどうか。 |
Example
-
JSON Response
{ "object": "charge", "id": "chrg_test_no1t4tnemucod0e51mo", "location": "/charges/chrg_test_no1t4tnemucod0e51mo", "amount": 12345, "net": 11862, "fee": 451, "fee_vat": 32, "interest": 0, "interest_vat": 0, "funding_amount": 12345, "refunded_amount": 0, "transaction_fees": { "fee_flat": "0.0", "fee_rate": "3.65", "vat_rate": "7.0" }, "platform_fee": { "fixed": null, "amount": null, "percentage": null }, "currency": "THB", "funding_currency": "THB", "ip": "203.0.113.1", "refunds": { "object": "list", "data": [], "limit": 20, "offset": 0, "total": 0, "location": "/charges/chrg_test_no1t4tnemucod0e51mo/refunds", "order": "chronological", "from": "1970-01-01T00:00:00Z", "to": "2019-12-31T12:59:59Z" }, "link": null, "description": null, "metadata": { "order_id": "P26042018-01", "color": "pink" }, "card": { "object": "card", "id": "card_test_no1t4tnemucod0e51mo", "livemode": false, "location": null, "deleted": false, "street1": "1448/4 Praditmanutham Road", "street2": null, "city": "Bangkok", "state": null, "phone_number": "0123456789", "postal_code": "10320", "country": "th", "financing": "credit", "bank": "Bank of the Unbanked", "brand": "Visa", "fingerprint": "XjOdjaoHRvUGRfmZacMPcJtm0U3SEIIfkA7534dQeVw=", "first_digits": null, "last_digits": "4242", "name": "Somchai Prasert", "expiration_month": 12, "expiration_year": 2024, "security_code_check": true, "tokenization_method": null, "created_at": "2019-12-31T12:59:59Z" }, "source": null, "schedule": null, "customer": null, "dispute": null, "transaction": "trxn_test_no1t4tnemucod0e51mo", "failure_code": null, "failure_message": null, "status": "successful", "authorize_uri": "https://api.omise.co/payments/paym_test_no1t4tnemucod0e51mo/authorize", "return_uri": "https://www.example.com/orders/54321/complete", "created_at": "2019-12-31T12:59:59Z", "paid_at": "2019-12-31T12:59:59Z", "expires_at": "2019-12-31T12:59:59Z", "expired_at": null, "reversed_at": null, "zero_interest_installments": true, "branch": null, "terminal": null, "device": null, "authorized": true, "capturable": false, "capture": true, "disputable": true, "livemode": false, "refundable": true, "reversed": false, "reversible": false, "voided": false, "paid": true, "expired": false }
仮売上の実売上化
- POST https://api.omise.co/charges/{id}/capture仮売上として作成した課金を、実売上化します。仮売上とする課金は事前に「課金の作成」をcapture=false
として作成しておきます。仮売上は作成されてから30日間が経過すると失効します。その時点までに実売上化しなかった場合、払い戻し済みとして扱われ、実売上化できなくなります。
Request Parameters
Name | Type | Description |
---|---|---|
capture_amount | integer | (任意) (オプション) 実売上化する課金通貨の最小単位での金額を表示します。Capture(実売上化) APIによって処理され、お客様のアカウントから加盟店のアカウントに振り込まれる金額です。 この金額は、最終オーソリの場合は与信確保額と等しくなり、事前オーソリの場合は与信確保額の一部になります。 1回の一部実売上化をご利用の場合、このフィールドは必須です。 |
Example
-
仮売上の実売上化
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_60kwirza97rghqqpcfd/capture \ -X POST \ -u $OMISE_SECRET_KEY:
<?php $charge = OmiseCharge::retrieve('chrg_test_4xso2s8ivdej29pqnhz'); $charge->capture();
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.capture('chrg_test_no1t4tnemucod0e51mo'); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz") charge.capture
var charge = RetrieveUncapturedCharge(); charge = await Client.Charges.Capture(charge.Id); Console.WriteLine($"captured charge: ({charge.Paid}) {charge.Id}");
Request<Charge> request = new Charge.CaptureRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz").build(); Charge charge = client().sendRequest(request); System.out.printf("Captured charge: %s", charge.getId());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo") charge.capture()
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.CaptureCharge{ ChargeID: "chrg_test_no1t4tnemucod0e51mo", }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.capture("chrg_test_4xso2s8ivdej29pqnhz")
新しい課金の作成
- POST https://api.omise.co/charges新しい課金を作成する際には、まずトークンを作成してからチャージを作成します。トークン作成はクライアント側かサーバ側のプログラムで行い、チャージについてはサーバ側のプログラム(クライアント側では実装しないでください)で行います。
クレジットカードへの課金を行うには、新しい課金(Charge
)オブジェクトを作成してください。 テストモードのAPIキーを使用中の場合は、指定されたカードへ請求が行くことはありません。 ※テストモードでは、課金は成功したとみなして動作します。 新しい課金の作成時には、トークン、Customerまたは、CustomerとCardオブジェクトを使った3つの方法があります。 課金の作成に失敗した場合には、下記のエラーコードが返却されます。
failure_code |
Description |
---|---|
confirmed_amount_mismatch |
決済チャネルからの最終金額と当初の課金金額が一致しない場合に発生します。 |
failed_fraud_check |
カードが不正だと判定した場合に発生します。 |
failed_processing |
トランザクション処理のプロセスが失敗した場合に発生します。 |
insufficient_balance /insufficient_fund |
与信限度枠を超えた時に発生します。 |
invalid_account_number /invalid_account |
利用できないカード番号の場合に発生します。 |
payment_cancelled |
支払者が決済をキャンセルした場合に発生します。 |
payment_rejected |
何らかの理由により、課金が拒否された場合に発生します。 |
stolen_or_lost_card |
盗難カード、または紛失カードの場合に発生します。 |
timeout |
決済事業者が時間内に応答をしなかった場合に発生します。 |
Request Parameters
Name | Type | Description |
---|---|---|
amount | integer | (必須) smallest currency unit(最小通貨単位)での課金金額。 |
currency | string | (必須) ISO 4217 コードで定義された3文字の課金通貨 |
authorization_type | string | (任意) 以下のいずれか: a. pre_auth: 事前オーソリは、最終的な取引金額が不明または変更される可能性のある場合に通常行われます。加盟店は見積金額分の枠を、事前に与信確保(オーソリゼーション)します。事前オーソリを行うことで、請求する可能性のある最大金額を確保し、実売上化をする直前で与信確保枠を減らすことができます。 b. final_auth:最終的な取引金額に関して加盟店とお客様の両方が事前に合意しており、与信確保枠の調整が発生しないときに、最終オーソリを行います。この場合、与信確保された全額が決済プロセス中に実売上化されます。 |
capture | boolean | (任意, default: |
card | string | (任意、 場合によって必須) card(カード) 課金されたオブジェクト(カードが課金された場合) |
customer | string | (任意、 場合によって必須) 課金に紐付けられた |
description | string | (任意だが推奨) 課金の説明。 購入する商品に関する情報(商品の数、商品の種類、配達日など)を入力することで、Opn Paymentsが実施する不正検知がより正確になります。 |
expires_at | string | (任意) (オプション) ISO 8601フォーマット(YYYY-MM-DDThh:mm:ssZ)による、希望する課金終了のUTC日時。 以下に対応しています:
注:このリストはすべてを網羅しているわけではありません。このフィールドがサポートされているかどうかを確認するには、各決済方法を参照してください。 |
first_charge | string | (任意) 繰り返し発生する課金における最初の取引のCharge ID。定期課金を作成する際、承認の可能性を高めるためにオプションのパラメータとして渡されます。 |
ip | string | (任意だが推奨) 課金に紐付けるIPアドレス。 Opn Paymentsに、実際のIPアドレスを提供し、不正防止の検査を改善します。 |
linked_account | string | (任意) TBD |
metadata | object | (任意) メタデータをカスタムする (例 |
platform_fee | object | (任意) プラットフォーム手数料 |
recurring_reason | string | (任意) TBD |
return_uri | string | (任意、 場合によって必須) 3Dセキュアカード認証またはその他の[ソース](/ source-api)承認後に顧客がリダイレクトされるURI |
source | string | (任意、 場合によって必須) 課金されたソースSource(ソースが課金された場合)。 |
transaction_indicator | string | (任意) 誰が課金を開始したかを示します。以下のどちらかです。
Opnはオーソリリクエストを適宜フォーマットします。 |
webhook_endpoints | array | (任意) (オプション) 課金通知の送信先URL。このフィールドには最大で2つのURLを含めることができます。各URLはセキュア(HTTPS)かつ、以下の条件を満たしている必要があります。
該当する課金と返金(もしあれば)に関連するすべてのイベント通知は、アカウント設定のデフォルトのwebhook_endpointではなく、ここで定義されたURLに配信されます。 |
zero_interest_installments | boolean | (任意, one of: |
Example
-
オフサイトのアリペイ料金を作成する
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "amount=100000" \ -d "currency=thb" \ -d "return_uri=https://www.omise.co/example_return_uri" \ -d "source[type]=alipay"
<?php $charge = OmiseCharge::create(array( 'amount' => 100000, 'currency' => 'thb', 'return_uri' => 'http://www.example.com', 'source' => 'src_test_59wbyjr7jz44d8nzcd6' ));
omise.charges.create({ 'amount': '100000', 'currency': 'thb', 'return_uri': 'http://www.example.com', 'source': 'src_test_59wbyjr7jz44d8nzcd6' }, function(error, charge) { /* Response. */ });
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.create({ amount: 100000, currency: "thb", description: "an alipay charge", return_uri: "http://www.example.com", source: "src_test_59wbyjr7jz44d8nzcd6" })
var returnUri = "http://www.example.com"; var source = "src_test_59wbyjr7jz44d8nzcd6"; var charge = await Client.Charges.Create(new CreateChargeRequest { Amount = 2000, Currency = "thb", ReturnUri = returnUri, Source = source, }); Console.WriteLine($"created charge: {charge.Id}");
Request<Source> sourceRequest = new Source.CreateRequestBuilder() .type(SourceType.Alipay) .amount(10000) .currency("THB") .build(); Source source = client.sendRequest(sourceRequest); Request<Charge> createChargeRequest = new Charge.CreateRequestBuilder() .source(source.getId()) .amount(10000) .currency("THB") .returnUri("http://example.com") .build(); Charge charge = client.sendRequest(createChargeRequest); System.out.printf("Created charge: " + charge.getId());
import omise omise.api_version = "2017-11-02" omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.create( amount=12345, currency="thb", return_uri="https://www.example.com/orders/54321/complete", source="src_test_no1t4tnemucod0e51mo", )
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.CreateCharge{ Amount: 204842, // THB 2,048.42 Currency: "thb", ReturnURI: "http://www.example.com", Source: "src_test_no1t4tnemucod0e51mo", }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.create( amount: 100000, currency: "thb", return_uri: "http://www.example.com", source: "src_test_59wbyjr7jz44d8nzcd6" )
-
分割払いを作成する
- curl
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "description=Charge with source" \ -d "amount=500000" \ -d "currency=THB" \ -d "return_uri=https://www.omise.co/example_return_uri" \ -d "source[type]=installment_kbank" \ -d "source[installment_term]=4"
-
オフサイトのインターネットバンキング課金を作成する
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "amount=100000" \ -d "currency=thb" \ -d "return_uri=https://www.omise.co/example_return_uri" \ -d "source[type]=internet_banking_scb"
<?php $charge = OmiseCharge::create(array( 'amount' => 100000, 'currency' => 'thb', 'return_uri' => 'http://www.example.com', 'source' => 'src_test_59wbyjr7jz44d8nzcd6' ));
omise.charges.create({ 'amount': '100000', 'currency': 'thb', 'return_uri': 'http://www.example.com', 'source': 'src_test_59wbyjr7jz44d8nzcd6' }, function(error, charge) { /* Response. */ });
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.create({ amount: 100000, currency: "thb", return_uri: "http://www.example.com", source: "src_test_59wbyjr7jz44d8nzcd6" })
var returnUri = "http://www.example.com"; var source = "src_test_59wbyjr7jz44d8nzcd6"; var charge = await Client.Charges.Create(new CreateChargeRequest { Amount = 2000, Currency = "thb", ReturnUri = returnUri, Source = source, }); Console.WriteLine($"created charge: {charge.Id}");
Request<Source> sourceRequest = new Source.CreateRequestBuilder() .type(SourceType.InternetBankingBay) .amount(10000) .currency("THB") .build(); Source source = client.sendRequest(sourceRequest); Request<Charge> createChargeRequest = new Charge.CreateRequestBuilder() .source(source.getId()) .amount(10000) .currency("THB") .returnUri("http://example.com") .build(); Charge charge = client.sendRequest(createChargeRequest); System.out.printf("Created charge: " + charge.getId());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" omise.api_version = "2017-11-02" charge = omise.Charge.create( amount=12345, currency="thb", return_uri="https://www.example.com/orders/54321/complete", source="src_test_no1t4tnemucod0e51mo", )
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.CreateCharge{ Amount: 204842, // THB 2,048.42 Currency: "thb", ReturnURI: "http://www.example.com", Source: "src_test_no1t4tnemucod0e51mo", }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.create( amount: 100000, currency: "thb", return_uri: "http://www.example.com", source: "src_test_59wbyjr7jz44d8nzcd6" )
-
新しいソースを作成し課金する
- curl
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "amount=100000" \ -d "currency=thb" \ -d "return_uri=https://www.omise.co/example_return_uri" \ -d "source[type]=alipay"
-
CustomerとCardオブジェクトを使い、新しい課金を作成する
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "amount=100000" \ -d "currency=thb" \ -d "customer=cust_test_60kifc4zbmmj64570g9" \ -d "card=card_test_60kiedwwd2obbiztswl" \ -d "description=Details about the purchase (e.g. number of items, type of items, date of delivery)" \ -d "ip=203.0.113.1"
<?php $charge = OmiseCharge::create(array( 'amount' => 100000, 'currency' => 'thb', 'customer' => 'cust_test_4xtrb759599jsxlhkrb', 'card' => 'card_test_4xtsoy2nbfs7ujngyyq' ));
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.create({ amount: '100000', currency: 'thb', customer: 'cust_test_no1t4tnemucod0e51mo', card: 'card_test_no1t4tnemucod0e51mo', }); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.create({ amount: 100000, currency: "thb", customer: "cust_test_4xtrb759599jsxlhkrb", card: "card_test_4xtsoy2nbfs7ujngyyq" })
var customerId = "cust_test_5665swqhhb3mioax1y7"; var cardId = "card_test_5665swpkm6tv47htmuv"; var charge = await Client.Charges.Create(new CreateChargeRequest { Amount = 2000, Currency = "thb", Customer = customerId, Card = cardId, }); Console.WriteLine($"created charge: {charge.Id}");
public void createChargeFromCustomer() throws IOException, OmiseException { Request < Charge > createChargeRequest = new Charge.CreateRequestBuilder().customer(CUSTOMER_ID).card(CARD_ID) .amount(2000) .currency("thb") .capture(true) .build(); Charge charge = client.sendRequest(createChargeRequest); System.out.println("created charge: " + charge.getId()); } }
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.create( amount=100000, currency="thb", customer="cust_test_no1t4tnemucod0e51mo", card="card_test_no1t4tnemucod0e51mo", return_uri="https://www.example.com/orders/54321/complete", )
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.CreateCharge{ Amount: 204842, // THB 2,048.42 Currency: "thb", Description: "example charge.", Card: "card_test_no1t4tnemucod0e51mo", Customer: "cust_test_no1t4tnemucod0e51mo", }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.create( amount: 100000, currency: "thb", customer: "cust_test_4xtrb759599jsxlhkrb", card: "card_test_4xtsoy2nbfs7ujngyyq" )
-
Customerに保存したCardオブジェクトを使い、新しい課金を作成する
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "amount=100000" \ -d "currency=thb" \ -d "customer=cust_test_60kifc4zbmmj64570g9"
<?php $charge = OmiseCharge::create(array( 'amount' => 100000, 'currency' => 'thb', 'customer' => 'cust_test_4xtrb759599jsxlhkrb' ));
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.create({ amount: '100000', currency: 'thb', customer: 'cust_test_ no1t4tnemucod0e51mo', }); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.create({ amount: 100000, currency: "thb", customer: "cust_test_4xtrb759599jsxlhkrb" })
var customerId = "cust_test_5665swqhhb3mioax1y7"; var charge = await Client.Charges.Create(new CreateChargeRequest { Amount = 2000, Currency = "thb", Customer = customerId, }); Console.WriteLine($"created charge: {charge.Id}");
Request<Charge> request = new Charge.CreateRequestBuilder() .amount(100000) .currency("thb") .customer("cust_test_4xtrb759599jsxlhkrb") .build(); Charge charge = client().sendRequest(request); System.out.printf("created charge: %s", charge.getId());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.create( amount=100000, currency="thb", customer="cust_test_no1t4tnemucod0e51mo", return_uri="https://www.example.com/orders/54321/complete", )
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.CreateCharge{ Amount: 204842, // THB 2,048.42 Currency: "thb", Description: "customer charge.", Customer: "cust_test_no1t4tnemucod0e51mo", }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.create( amount: 100000, currency: "thb", customer: "cust_test_4xtrb759599jsxlhkrb", )
-
Charge a card while adding metadata
- curl
- php
- node.js
- go
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "amount=10000" \ -d "currency=thb" \ -d "customer=cust_test_60kifc4zbmmj64570g9" \ -d "metadata[order_id]=ORDER-1234" \ -d "metadata[color]=black"
<?php $charge = OmiseCharge::create(array( 'amount' => 10000, 'currency' => 'thb', 'customer' => 'cust_test_6b9yyfcxvuowurp7zsh', 'metadata' => array( 'order_id' => 'ORDER_ID', 'color' => 'pink' ) ));
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.create({ amount: '100000', currency: 'thb', customer: 'cust_test_no1t4tnemucod0e51mo', metadata: { order_id: '123456', color: 'black', }, }); console.log(charge);
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.CreateCharge{ Amount: 204842, // THB 2,048.42 Currency: "thb", Description: "customer charge.", Customer: "cust_test_no1t4tnemucod0e51mo", Metadata: map[string]string{ "OrderID": "123456", "Color": "Black", } }) if err != nil { log.Fatalln(err) } log.Println(result)
-
トークンを使い、新しい課金を作成する
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY: \ -d "amount=100000" \ -d "currency=thb" \ -d "card=tokn_test_60kw4dxb9redghzf8zs"
<?php $charge = OmiseCharge::create(array( 'amount' => 100000, 'currency' => 'thb', 'card' => 'tokn_test_4xs9408a642a1htto8z' ));
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.create({ amount: '100000', currency: 'thb', card: 'tokn_test_no1t4tnemucod0e51mo', }); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.create({ amount: 100000, currency: "thb", card: "tokn_test_4xs9408a642a1htto8z" })
var token = await RetrieveToken(); var charge = await Client.Charges.Create(new CreateChargeRequest { Amount = 2000, Currency = "thb", Card = token.Id, Metadata = new Dictionary<string, object> { { "order_id", "123" } }, }); Console.WriteLine($"created charge: {charge.Id}");
Request<Token> tokenRequest = new Token.CreateRequestBuilder() .card(new Card.Create() .name("John Doe") .number("4242424242424242") .securityCode("123") .expiration(10, 2020)) .build(); Token token = client.sendRequest(tokenRequest); System.out.printf("Created token: " + token.getId()); Request<Charge> createChargeRequest = new Charge.CreateRequestBuilder() .amount(100000) .currency("THB") .card(token.getId()) .build(); Charge charge = client().sendRequest(createChargeRequest); System.out.printf("Created charge: %s", charge.getId());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.create( amount=100000, currency="thb", card="tokn_test_no1t4tnemucod0e51mo", return_uri="https://www.example.com/orders/54321/complete", )
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.CreateCharge{ Amount: 204842, // THB 2,048.42 Currency: "thb", Card: "tokn_test_no1t4tnemucod0e51mo", }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.create( amount: 100000, currency: "thb", card: "tokn_test_4xs9408a642a1htto8z" )
保留中の課金を無効にする
- POST https://api.omise.co/charges/{id}/expire課金を無効にする
まだ承認されていない(status=pending
)課金を無効にします。
以下のsource[type]
を持つ課金に対応しています。
alipay_cn
、alipay_hk
、barcode_alipay
、dana
、gcash
、kakaopay
、paypay
または touch_n_go
。
Example
-
課金を無効にする
- curl
- node.js
curl https://api.omise.co/charges/chrg_test_60kwirza97rghqqpcfd/expire \ -X POST \ -u $OMISE_SECRET_KEY:
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.expire('chrg_test_no1t4tnemucod0e51mo'); console.log(charge);
課金リストの取得
- GET https://api.omise.co/chargeschargeに属するすべての お客様のアカウントオブジェクトの list を返します。
Request Parameters
Name | Type | Description |
---|---|---|
from | string | (任意, default: |
limit | integer | (任意, default: |
offset | integer | (任意, default: |
order | string | (任意, default: |
to | string | (任意) ISO 8601形式 ( |
Example
-
課金リストの取得
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges \ -u $OMISE_SECRET_KEY:
<?php $charges = OmiseCharge::retrieve();
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.list(); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charges = Omise::Charge.list
var charges = await Client.Charges.GetList(order: Ordering.Chronological); Console.WriteLine($"total charges: {charges.Total}");
Request<ScopedList<Charge>> request = new Charge.ListRequestBuilder().build(); ScopedList<Charge> charges = client().sendRequest(request); System.out.printf("Total no. of charges: %d", charges.getTotal());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charges = omise.Charge.retrieve()
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.ChargeList{} err := client.Do(result, &operations.ListCharges{ operations.List{ Limit: 100, From: time.Now().Add(-1 * time.Hour), }, }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.list
List charges for a link
- GET https://api.omise.co/links/{id}/chargesReturns a list of charges associated with a link.
Request Parameters
Name | Type | Description |
---|---|---|
from | string | (任意, default: |
limit | integer | (任意, default: |
offset | integer | (任意, default: |
order | string | (任意, default: |
to | string | (任意) ISO 8601形式 ( |
テストモードで課金に失敗したとマークを付ける
- POST https://api.omise.co/charges/{id}/mark_as_failedテストモードの目的の一環でもありますが、このエンドポイントを利用することで、テスト課金を失敗したとして手動でマークすることができます。
Example
-
テスト課金を失敗としてマークを付ける
- curl
curl https://api.omise.co/charges/chrg_test_60kw2xl9cdtivuncxv2/mark_as_failed \ -X POST \ -u $OMISE_SECRET_KEY:
テストモードで支払った課金にマークを付ける
- POST https://api.omise.co/charges/{id}/mark_as_paidテストモードの目的の一環でもありますが、このエンドポイントを利用することで、テスト課金を支払い済みとして手動でマークできます。
Example
-
テスト課金を支払い済みとしてマークを付ける
- curl
curl https://api.omise.co/charges/chrg_test_60kwldy12skb3h42dwr/mark_as_paid \ -X POST \ -u $OMISE_SECRET_KEY:
課金情報の取得
- GET https://api.omise.co/charges/{id}過去に作成済みの課金(charge
)オブジェクトを取得します。課金は課金ID(charge ID)によって識別されます。ここで返す情報は、課金オブジェクトの作成時に返ってくる情報と同じです。
Example
-
課金情報の取得
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_60kwldy12skb3h42dwr \ -u $OMISE_SECRET_KEY:
<?php $charge = OmiseCharge::retrieve("chrg_test_4xso2s8ivdej29pqnhz");
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.retrieve('chrg_test_no1t4tnemucod0e51mo'); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz")
var chargeId = "chrg_test_58e1ybdog1y8f5z97l8"; var charge = await Client.Charges.Get(chargeId); Console.WriteLine($"charge amount: {charge.Amount}");
Request<Charge> request = new Charge.GetRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz").build(); Charge charge = client().sendRequest(request); System.out.printf("Charge amount: %d", charge.getAmount());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo")
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.RetrieveCharge{"chrg_test_no1t4tnemucod0e51mo"}) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz")
仮売上の取消
- POST https://api.omise.co/charges/{id}/reverse仮売上(capture=false
のCharge)を取消すためのAPIです。仮売上の取消後、抑えていた与信枠が解放されます。
Example
-
仮売上の取消
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_5xmwdza9ooddiuhdvqq/reverse \ -X POST \ -u $OMISE_SECRET_KEY:
$charge = OmiseCharge::retrieve('chrg_test_4xso2s8ivdej29pqnhz'); $charge->reverse();
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.reverse('chrg_test_no1t4tnemucod0e51mo'); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz") charge.reverse
var charge = RetrieveUncapturedCharge(); charge = await Client.Charges.Reverse(charge.Id); Console.WriteLine($"reversed charge: ({charge.Reversed}) {charge.Id}");
Request<Charge> request = new Charge.ReverseRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz").build(); Charge charge = client().sendRequest(request); System.out.printf("Charge reversal: %s", String.valueOf(charge.isReversed()));
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo") charge.reverse()
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.ReverseCharge{"chrg_test_no1t4tnemucod0e51mo"}) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.reverse("chrg_test_4xso2s8ivdej29pqnhz")
課金説明の更新
- PATCH https://api.omise.co/charges/{id}Chargeオブジェクトのdescriptionを更新するためのAPIです。
Request Parameters
Name | Type | Description |
---|---|---|
description | string | (任意だが推奨) 課金の説明。 購入する商品に関する情報(商品の数、商品の種類、配達日など)を入力することで、Opn Paymentsが実施する不正検知がより正確になります。 |
metadata | object | (任意) メタデータをカスタムする (例 |
Example
-
課金説明の更新
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_5xmwdyub5k3hn0iunst \ -X PATCH \ -u $OMISE_SECRET_KEY: \ -d "description=Another description"
<?php $charge = OmiseCharge::retrieve('chrg_test_4xso2s8ivdej29pqnhz'); $charge->update(array( 'description' => 'Another description' ));
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.update( 'chrg_test_no1t4tnemucod0e51mo', { description: 'Another description' }, ); console.log(charge);
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz") charge.update(description: "Another description")
var charge = RetrieveUncapturedCharge(); charge = await Client.Charges.Update(charge.Id, new UpdateChargeRequest { Description = "hello", Metadata = new Dictionary<string, object> { { "order_id", "123" }, } }); Console.WriteLine($"updated charge: {charge.Id} {charge.Description}");
Request<Charge> request = new Charge.UpdateRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz") .description("This is not the same") .build(); Charge charge = client().sendRequest(request); System.out.printf("Updated description: %s", charge.getDescription());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo") charge.update(description="An updated description") # Or alternatively: charge.description = "An additional updated description" charge.update()
client, _ := omise.NewClient( "pkey_test_no1t4tnemucod0e51mo", "skey_test_no1t4tnemucod0e51mo", ) result := &omise.Charge{} err := client.Do(result, &operations.UpdateCharge{ ChargeID: "chrg_test_no1t4tnemucod0e51mo", Description: "Made on Tuesday", }) if err != nil { log.Fatalln(err) } log.Println(result)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.update("chrg_test_4xso2s8ivdej29pqnhz", description: "Another description")
-
Update charge metadata
- curl
- php
- node.js
curl https://api.omise.co/charges/chrg_test_5xmwdyub5k3hn0iunst \ -X PATCH \ -u $OMISE_SECRET_KEY: \ -d "metadata[order_id]=ORDER-1234" \ -d "metadata[color]=black"
<?php $charge = OmiseCharge::retrieve('chrg_test_6bp4e1mr40jni2imuan'); $charge->update(array( 'metadata' => array( 'order_id' => 'ORDER_ID', 'color' => 'red' ) ));
const omise = require('omise')({ secretKey: 'skey_test_no1t4tnemucod0e51mo', }); const charge = await omise.charges.update( 'chrg_test_no1t4tnemucod0e51mo', { metadata: { order_id: '123456', color: 'black', }, }, ); console.log(charge);