Charges
The Charge object represents a payment transaction in the Omise API.
Use charges to collect payments from customers via credit cards, debit cards, or alternative payment methods like PromptPay, TrueMoney, and mobile banking. Charges support both immediate capture and pre-authorization workflows.
Charge Lifecycle
pending → authorized → captured → successful
pending → failed
pending → expired
authorized → reversed
Endpoints
POST/chargesCreate a chargeGET/charges/:idRetrieve a chargeGET/chargesList all chargesPATCH/charges/:idUpdate a chargePOST/charges/:id/captureCapture a chargePOST/charges/:id/reverseReverse a chargePOST/charges/:id/expireExpire a chargePOST/charges/:id/mark_as_paidTEST ONLYMark as paidPOST/charges/:id/mark_as_failedTEST ONLYMark as failed
The Charge Object
id
Unique identifier for the charge (chrg_test_...)
object
Object type, always "charge"
amount
Charge amount in smallest currency unit
net
Net amount after fees
fee
Processing fee charged
fee_vat
VAT on the processing fee
currency
Three-letter ISO 4217 currency code
status
Charge status: pending, successful, failed, expired, reversed
authorized
Whether the charge has been authorized
captured
Whether the charge has been captured
reversed
Whether the charge has been reversed (voided)
paid
Whether the charge has been paid
capturable
Whether the charge can be captured
reversible
Whether the charge can be reversed
refundable
Whether the charge can be refunded
expired
Whether the charge has expired
card
Card details (for card payments)
source
Payment source details (for alternative payments)
customer
Customer ID if charged to a saved customer
description
Merchant-facing transaction description
metadata
Custom key-value pairs
return_uri
Redirect URI for 3DS or redirect flows
authorize_uri
URL for customer authorization (3DS, redirects)
created_at
Charge creation timestamp (ISO 8601)
paid_at
Payment completion timestamp
expires_at
Charge expiration timestamp
Full API schema available at api.omise.co/schema