Omise.Charge (omise v0.10.0)

Provides Charge API interfaces.

https://www.omise.co/charges-api

Summary

Functions

Capture a charge.

Create a charge.

List all charges.

List all charge schedules.

Retrieve a charge.

Reverse an uncaptured charge.

Search all the charges.

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

Link to this function

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)
Link to this function

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 valid CUSTOMER_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 a TOKEN_ID in the card parameter.
  • card - (required or optional) A valid unused TOKEN_ID or CARD_ID. In the case of the CARD_ID the customer parameter must be present and be the owner of the card. For the TOKEN_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"
)
Link to this function

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)
Link to this function

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")
Link to this function

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
Link to this function

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)
Link to this function

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")
Link to this function

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")
Link to this function

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")
Link to this function

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")
Link to this function

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")