Omise.Charge (omise v0.10.0)
Provides Charge API interfaces.
Summary
Functions
Capture a charge.
Create a charge.
List all charges.
List all refunds.
List all charge schedules.
Create a refund.
Retrieve a charge.
Retrieve a refund.
Reverse an uncaptured charge.
Search all the charges.
Update a charge.
Types
@type t() :: %Omise.Charge{ amount: String.t(), authorization_type: term(), authorize_uri: String.t(), authorized: boolean(), authorized_amount: term(), branch: String.t(), capturable: boolean(), capture: boolean(), captured: boolean(), captured_amount: term(), card: Omise.Card.t(), created: String.t(), currency: String.t(), customer: String.t(), description: String.t(), device: String.t(), disputable: boolean(), dispute: Omise.Dispute.t(), expired: boolean(), expired_at: String.t(), expires_at: String.t(), failure_code: String.t(), failure_message: String.t(), fee: integer(), fee_vat: integer(), funding_amount: integer(), funding_currency: String.t(), id: String.t(), installment_terms: integer(), interest: integer(), interest_vat: integer(), ip: String.t(), link: String.t(), livemode: boolean(), location: String.t(), metadata: map(), net: integer(), object: String.t(), offline: map(), offsite: String.t(), paid: boolean(), platform_fee: integer(), reference: String.t(), refundable: boolean(), refunded: String.t(), refunded_amount: integer(), refunds: Omise.List.t(), return_uri: String.t(), reversed: boolean(), reversible: boolean(), schedule: String.t(), source: Omise.Source.t(), source_of_fund: String.t(), status: String.t(), terminal: String.t(), transaction: String.t(), zero_interest_installments: boolean() }
Functions
capture(id, opts \\ [])
@spec capture(String.t(), Keyword.t()) :: {:ok, t()} | {:error, Omise.Error.t()}
Capture a charge.
Returns {:ok, charge}
if the request is successful, {:error, error}
otherwise.
NOTE:
If you have created a charge and passed capture=false
you'll have an authorized only charge that you can capture at a later time.
You can hold it for as long as permitted by the issuing bank. This delay may vary between cards from 1 to 30 days.
To create a partial capture charge you must set your charge authorization_type="pre_auth"
and capture=false
then you can partially capture the charge with capture_amount=amount
Examples
Omise.Charge.capture("chrg_test_4xso2s8ivdej29pqnhz")
Omise.Charge.capture("chrg_test_4xso2s8ivdej29pqnhz", key: "skey_test_123", capture_amount: 3000)
create(params, opts \\ [])
@spec create(Keyword.t(), Keyword.t()) :: {:ok, t()} | {:error, Omise.Error.t()}
Create a charge.
Returns {:ok, charge}
if the request is successful, {:error, error}
otherwise.
Request Parameters:
customer
- (required or optional) A validCUSTOMER_ID
that has at least one card already associated. By default the default card of the customer will be used. This parameter is required unless passing aTOKEN_ID
in the card parameter.card
- (required or optional) A valid unusedTOKEN_ID
orCARD_ID
. In the case of theCARD_ID
the customer parameter must be present and be the owner of the card. For theTOKEN_ID
, the customer must not be passed.amount
- (required) The amount in the smallest subunits of the currency used. For thb (Thai Baht) you'll need to pass the amount in satangs.currency
- (required) The currency in which you want the charge to be done. The default and only valid value is thb.description
- (optional) A custom description for the charge. This value can be searched for in your dashboard.capture
- (optional) Whether or not you want the charge to be captured right away, when not specified it is set to true.return_uri
- (optional) The url where we will return the customer after the charge has been authorized with 3-D Secure.
Examples
# Charge a card using a token.
Omise.Charge.create(
amount: 1000_00,
currency: "thb",
card: "tokn_test_51w6fvilnsxalda4cih"
)
# Charge a card using a customer.
Omise.Charge.create(
amount: 1000_00,
currency: "thb",
customer: "cust_test_51vtchzn51al0jaa92q"
)
# Charge a card using a customer and a card.
Omise.Charge.create(
amount: 1000_00,
currency: "thb",
customer: "cust_test_51vtchzn51al0jaa92q",
card: "card_test_51w6jblhhpzmc2g8bcm"
)
# Create an internet banking charge
Omise.Charge.create(
amount: 1000_00,
currency: "thb",
return_uri: "https://example.com/orders/123/complete",
source: "src_test_59vbms154ab4pe4jh2i"
)
# Create a bill payment charge
Omise.Charge.create(
amount: 1000_00,
currency: "thb",
source: "src_test_59vb8av645gxw48glui"
)
list(params \\ [], opts \\ [])
@spec list(Keyword.t(), Keyword.t()) :: {:ok, Omise.List.t()} | {:error, Omise.Error.t()}
List all charges.
Returns {:ok, charges}
if the request is successful, {:error, error}
otherwise.
Query Parameters:
offset
- (optional, default: 0) The offset of the first record returned.limit
- (optional, default: 20, maximum: 100) The maximum amount of records returned.from
- (optional, default: 1970-01-01T00:00:00Z, format: ISO 8601) The UTC date and time limiting the beginning of returned records.to
- (optional, default: current UTC Datetime, format: ISO 8601) The UTC date and time limiting the end of returned records.
Examples
Omise.Charge.list
Omise.Charge.list(limit: 10)
list_refunds(id, params \\ [], opts \\ [])
@spec list_refunds(String.t(), Keyword.t(), Keyword.t()) :: {:ok, Omise.List.t()} | {:error, Omise.Error.t()}
List all refunds.
Returns {:ok, refunds}
if the request is successful, {:error, error}
otherwise.
Query Parameters:
offset
- (optional, default: 0) The offset of the first record returned.limit
- (optional, default: 20, maximum: 100) The maximum amount of records returned.from
- (optional, default: 1970-01-01T00:00:00Z, format: ISO 8601) The UTC date and time limiting the beginning of returned records.to
- (optional, default: current UTC Datetime, format: ISO 8601) The UTC date and time limiting the end of returned records.
Examples
Omise.Charge.list_refunds("chrg_test_52oo08bwpgnwb95rye8")
list_schedules(params \\ [], opts \\ [])
@spec list_schedules(Keyword.t(), Keyword.t()) :: {:ok, Omise.List.t()} | {:error, Omise.Error.t()}
List all charge schedules.
Returns {:ok, schedules}
if the request is successful, {:error, error}
otherwise.
Query Parameters:
offset
- (optional, default: 0) The offset of the first record returned.limit
- (optional, default: 20, maximum: 100) The maximum amount of records returned.from
- (optional, default: 1970-01-01T00:00:00Z, format: ISO 8601) The UTC date and time limiting the beginning of returned records.to
- (optional, default: current UTC Datetime, format: ISO 8601) The UTC date and time limiting the end of returned records.
Examples
Omise.Charge.list_schedules
refund(id, params, opts \\ [])
@spec refund(String.t(), Keyword.t(), Keyword.t()) :: {:ok, Omise.Refund.t()} | {:error, Omise.Error.t()}
Create a refund.
Returns {:ok, refund}
if the request is successful, {:error, error}
otherwise.
Request Parameters:
amount
- The amount in the smallest subunits of the currency used. So for thb (Thai Baht) you'll need to pass the amount in satangs.
Examples
Omise.Charge.refund("chrg_test_520jim7x8u6t4si58va", amount: 100_00)
retrieve(id, opts \\ [])
@spec retrieve(String.t(), Keyword.t()) :: {:ok, t()} | {:error, Omise.Error.t()}
Retrieve a charge.
Examples
Omise.Charge.retrieve("chrg_test_4xso2s8ivdej29pqnhz")
retrieve_refund(id, refund_id, opts \\ [])
@spec retrieve_refund(String.t(), String.t(), Keyword.t()) :: {:ok, t()} | {:error, Omise.Error.t()}
Retrieve a refund.
Returns {:ok, refund}
if the request is successful, {:error, error}
otherwise.
Examples
Omise.Charge.retrieve_refund("chrg_test_520jim7x8u6t4si58va", "rfnd_test_4zgf1d7jcw5kr123puq")
reverse(id, opts \\ [])
@spec reverse(String.t(), Keyword.t()) :: {:ok, t()} | {:error, Omise.Error.t()}
Reverse an uncaptured charge.
Returns {:ok, charge}
if the request is successful, {:error, error}
otherwise.
NOTE:
If you have created a charge and passed capture=false
,
you'll have an authorized only charge that can be reversed, release hold money, at a later time.
Examples
Omise.Charge.reverse("chrg_test_4xso2s8ivdej29pqnhz")
search(params \\ [], opts \\ [])
@spec search(Keyword.t(), Keyword.t()) :: {:ok, Omise.Search.t()} | {:error, Omise.Error.t()}
Search all the charges.
Returns {:ok, charges}
if the request is successful, {:error, error}
otherwise.
Query Parameters:
<https://www.omise.co/search-query-and-filters>
Examples
Omise.Charge.search(filters: [paid: true])
Omise.Charge.search(query: "omise")
update(id, params, opts \\ [])
@spec update(String.t(), Keyword.t(), Keyword.t()) :: {:ok, t()} | {:error, Omise.Error.t()}
Update a charge.
Returns {:ok, charge}
if the request is successful, {:error, error}
otherwise.
Request Parameters:
description
- (optional) A custom description for the charge. This value can be searched for in your dashboard.
Examples
Omise.Charge.update("chrg_test_4xso2s8ivdej29pqnhz",
description: "The funny thing is that when I am okay, oh it makes me wish for rain")