Refund API
Refund API ใช้เพื่อสร้างหรือเรียกข้อมูลรายการคืนเงิน โดยการทำการคืนเงินนั้นมีความเกี่ยวเนื่องกับรายการรับชำระเงิน ซึ่งจะสามารถทำได้เฉพาะรายการที่ตรงตามข้อกำหนดเท่านั้น
Attributes
Name | Type | Description |
---|---|---|
object | string | The string |
id | object_id | The refund identifier matching |
livemode | boolean | Whether this is a live ( |
location | string | API path to retrieve the current |
amount | integer | Refund amount in smallest unit of charge currency. |
charge | object_id | Charge identifier associated with this refund. |
created_at | datetime | UTC datetime of refund creation in ISO 8601 format ( |
currency | currency | Currency for refund as three-letter ISO 4217 code. |
funding_amount | integer | For refunds of multi-currency charges, For refunds of non-multi-currency charges, |
funding_currency | currency | Currency for account as three-letter ISO 4217 code. This is the settlement currency for all charges. |
metadata | object | Custom metadata (e.g. |
transaction | object_id | Transaction identifier associated with this refund. |
voided | boolean | Whether refunded charge was voided instead. Charges are voided if refund is processed before settlement time. |
Deprecated Attributes
Name | Type | Description |
---|---|---|
status | string | Status of the refund. |
Example
-
JSON Response
{ "object": "refund", "id": "rfnd_test_no1t4tnemucod0e51mo", "location": "/charges/chrg_test_no1t4tnemucod0e51mo/refunds/rfnd_test_no1t4tnemucod0e51mo", "livemode": false, "voided": false, "currency": "THB", "amount": 10000, "metadata": { "answer": 42 }, "charge": "chrg_test_no1t4tnemucod0e51mo", "terminal": null, "transaction": "trxn_test_no1t4tnemucod0e51mo", "status": "closed", "funding_amount": 10000, "funding_currency": "THB", "created_at": "2019-12-31T12:59:59Z" }
Create a refund
- POST https://api.omise.co/charges/{id}/refundsCreates and returns a new refund on charge matching :id
.
Request Parameters
Name | Type | Description |
---|---|---|
amount | integer | (required) Refund amount in smallest unit of charge currency. |
metadata | object | (optional) Custom metadata (e.g. |
void | boolean | (optional) Whether to only process refund as a void, if possible. By default, if refund is requested before charge settlement, it is processed as a void, otherwise it is processed as a normal refund. |
Example
-
Create a refund
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_5g5idked981unmzjzhl/refunds \ -u $OMISE_SECRET_KEY: \ -d "amount=10000"
<?php $charge = OmiseCharge::retrieve("chrg_test_4xso2s8ivdej29pqnhz"); $refund = $charge->refunds()->create(array('amount' => 10000));
omise.charges.createRefund( 'chrg_test_4ype2jynk2len88i4er', {'amount': 10000}, function(error, refund) { /* Response. */ } );
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz") refund = charge.refunds.create(amount: 10000)
var charge = RetrieveCharge(); var refund = await Client.Charge(charge.Id).Refunds.Create(new CreateRefundRequest { Amount = charge.Amount, }); Console.WriteLine($"created refund: {refund.Id}");
Request<Refund> request = new Refund.CreateRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz") .amount(10000) .build(); Refund refund = client().sendRequest(request); System.out.printf("Created refund: %s", refund.getId());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo") refund = charge.refund(amount=10000)
refund, create := &omise.Refund{}, &operations.CreateRefund{ ChargeID: "chrg_test_4xso2s8ivdej29pqnhz", Amount: 100000, // THB 1,000.00 or JPY 100,000 } if e := client.Do(refund, create); e != nil { log.Fatalln(e) } log.Printf("created refund: %#v\n", refund)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.refund("chrg_test_4ype2jynk2len88i4er", amount: 10000)
-
Create a refund while adding metadata
- curl
- php
curl https://api.omise.co/charges/chrg_test_5g5idked981unmzjzhl/refunds \ -u $OMISE_SECRET_KEY: \ -d "amount=10000" \ -d "metadata[order_id]=ORDER-1234" \ -d "metadata[color]=black"
<?php $charge = OmiseCharge::retrieve('chrg_test_6bp9e1mr40jni2imuan'); $refund = $charge->refunds()->create(array( 'amount' => 10000, 'metadata' => array( 'order_id' => 'ORDER_ID', 'color' => 'pink' ) ));
Retrieve a refund
- GET https://api.omise.co/charges/{id}/refunds/{refund_id}Returns the refund matching :refund_id
belonging to charge matching :id
.
Example
-
Retrieve a refund
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_5g5idked981unmzjzhl/refunds/rfnd_test_4zgf1d7jcw5kr123puq \ -u $OMISE_SECRET_KEY:
<?php $charge = OmiseCharge::retrieve("chrg_test_4xso2s8ivdej29pqnhz"); $refund = $charge->refunds()->retrieve("rfnd_test_4ypebtxon6oye5o8myu");
omise.charges.retrieveRefund('chrg_test_4xso2s8ivdej29pqnhz', 'rfnd_test_4zgf1d7jcw5kr123puq', function(err, resp) { /* Response. */ });
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz") refund = charge.refunds.retrieve("rfnd_test_4zgf1d7jcw5kr123puq")
var chargeId = "chrg_test_58fkc7mrh99fnymu214"; var refundId = "rfnd_test_58fkcxsbyxodfei74kt"; var refund = await Client.Charge(chargeId).Refunds.Get(refundId); Console.WriteLine($"refunded: {refund.Amount}");
Request<Refund> request = new Refund.GetRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz", "rfnd_test_4ypebtxon6oye5o8myu") .build(); Refund refund = client().sendRequest(request); System.out.printf("Refunded amount: %d", refund.getAmount());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo")
refund, retrieve := &omise.Refund{}, &operations.RetrieveRefund{ ChargeID: "chrg_test_4xso2s8ivdej29pqnhz", RefundID: "rfnd_test_4zgf1d7jcw5kr123puq", } if e := client.Do(refund, retrieve); e != nil { log.Fatalln(e) } log.Printf("refund: %#v\n", refund)
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.retrieve_refund("chrg_test_4xso2s8ivdej29pqnhz", "rfnd_test_4zgf1d7jcw5kr123puq")
List refunds
- GET https://api.omise.co/refundsReturns a list of refunds belonging to your account.
Request Parameters
Name | Type | Description |
---|---|---|
from | datetime | (optional, default: |
limit | integer | (optional, default: 20, maximum: 100) Number of records returned. |
offset | integer | (optional, default: 0) Offset of the first record returned (i.e. how many records to skip from the beginning). |
order | string | (optional, default: |
to | datetime | (optional, default: current UTC datetime) Latest UTC datetime for returned records in ISO 8601 format ( |
Example
-
List all refunds
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_5g5idked981unmzjzhl/refunds \ -u $OMISE_SECRET_KEY:
<?php $charge = OmiseCharge::retrieve("chrg_test_4xso2s8ivdej29pqnhz"); $refunds = $charge->refunds();
omise.charges.listRefunds('chrg_test_4xso2s8ivdej29pqnhz', function(error, list) { /* Response. */ });
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz") refunds = charge.refunds
var chargeId = "chrg_test_58fkc7mrh99fnymu214"; var refunds = await Client .Charge(chargeId) .Refunds .GetList(order: Ordering.ReverseChronological); Console.WriteLine($"refunds for this charge: {refunds.Total}");
Request<ScopedList<Refund>> request = new Refund.ListRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz").build(); ScopedList<Refund> refunds = client().sendRequest(request); System.out.printf("Total no. of refunds: %d", refunds.getTotal());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo") refunds = charge.refunds
refunds, list := &omise.RefundList{}, &operations.ListRefunds{ ChargeID: "chrg_test_4xso2s8ivdej29pqnhz", } if e := client.Do(refunds, list); e != nil { log.Fatalln(e) } log.Println("# of refunds on charge:", len(refunds.Data))
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.list_refunds("chrg_test_4xso2s8ivdej29pqnhz")
List refunds for charge
- GET https://api.omise.co/charges/{id}/refundsReturns a list of refunds belonging to charge matching :id
.
Request Parameters
Name | Type | Description |
---|---|---|
from | datetime | (optional, default: |
limit | integer | (optional, default: 20, maximum: 100) Number of records returned. |
offset | integer | (optional, default: 0) Offset of the first record returned (i.e. how many records to skip from the beginning). |
order | string | (optional, default: |
to | datetime | (optional, default: current UTC datetime) Latest UTC datetime for returned records in ISO 8601 format ( |
Example
-
List all refunds for a charge
- curl
- php
- node.js
- ruby
- C#
- java
- python
- go
- elixir
curl https://api.omise.co/charges/chrg_test_5g5idked981unmzjzhl/refunds \ -u $OMISE_SECRET_KEY:
<?php $charge = OmiseCharge::retrieve("chrg_test_4xso2s8ivdej29pqnhz"); $refunds = $charge->refunds();
omise.charges.listRefunds('chrg_test_4xso2s8ivdej29pqnhz', function(error, list) { /* Response. */ });
require "omise" Omise.secret_api_key = "skey_test_4xs8breq3htbkj03d2x" charge = Omise::Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz") refunds = charge.refunds
var chargeId = "chrg_test_58fkc7mrh99fnymu214"; var refunds = await Client .Charge(chargeId) .Refunds .GetList(order: Ordering.ReverseChronological); Console.WriteLine($"refunds for this charge: {refunds.Total}");
Request<Charge> request = new Charge.GetRequestBuilder("chrg_test_4xso2s8ivdej29pqnhz").build(); Charge charge = client().sendRequest(request); ScopedList<Refund> refunds = charge.getRefunds() System.out.printf("Total no. of refunds: %d", refunds.getTotal());
import omise omise.api_secret = "skey_test_no1t4tnemucod0e51mo" charge = omise.Charge.retrieve("chrg_test_no1t4tnemucod0e51mo") refunds = charge.refunds
refunds, list := &omise.RefundList{}, &operations.ListRefunds{ ChargeID: "chrg_test_4xso2s8ivdej29pqnhz", } if e := client.Do(refunds, list); e != nil { log.Fatalln(e) } log.Println("# of refunds on charge:", len(refunds.Data))
Omise.configure(secret_key: "skey_test_4xs8breq3htbkj03d2x") Omise.Charge.list_refunds("chrg_test_4xso2s8ivdej29pqnhz")