Omise

Omise (now Opn Payments, part of Opn) is a Southeast Asian online payment gateway serving Thailand, Japan, and Singapore. Its REST API lets developers accept card payments and local methods - PromptPay, TrueMoney, internet and mobile banking, installments, and QR wallets - through Charges, Tokens, Sources, and Customers, plus Refunds, Disputes, Transfers, Recipients, Schedules, Links, and Events/webhooks. Card data is tokenized on a separate PCI-scoped vault host. The company rebranded from Omise to Opn in 2022; the API keeps the api.omise.co and vault.omise.co hosts.

Omise publishes 12 APIs on the APIs.io network, including Charges API, Tokens API, Sources API, and 9 more. Tagged areas include Payments, Payment Gateway, Thailand, Southeast Asia, and Charges.

Omise’s developer surface includes authentication, documentation, engineering blog, and 8 more developer resources.

31.8/100 thin ▬ flat Agent 48/100 agent ready Full breakdown ↓
scored 2026-07-20 · rubric v0.4
12 APIs 0 Features
PaymentsPayment GatewayThailandSoutheast AsiaChargesTokensSourcesPromptPayCardsFintech

API Rating

API Evangelist API Evangelist Rating How this is scored →
scored 2026-07-20 · rubric v0.4
Composite quality — 31.8/100 · thin
Contract Quality 9.4 / 25
Developer Ergonomics 4.3 / 20
Commercial Clarity 7.9 / 20
Operational Transparency 3.4 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 48/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/omise: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs

Omise Charges API

Create, retrieve, list, and update charges - the core payment object. Supports auto or manual capture (authorize then capture), reverse, expire, and test-mode mark_as_paid / mar...

Omise Tokens API

Single-use tokenization of raw card data on the PCI-scoped vault host (vault.omise.co), authenticated with the public key. Create a token client-side (typically via Omise.js) or...

Omise Sources API

Create and retrieve payment Sources for non-card, local methods - PromptPay, TrueMoney, internet and mobile banking, installments, and QR wallets (Alipay+, WeChat Pay, GCash, Sh...

Omise Customers API

Create, list, retrieve, update, and delete customers, and manage the cards saved against them. Attaching an unused card token to a customer saves it as a reusable card for repea...

Omise Refunds API

Issue full or partial refunds against a charge and list them, either nested under a charge or across the whole account. Refund objects capture funding amount and currency, acqui...

Omise Disputes API

List disputes (all, open, pending, or closed), retrieve a dispute, respond with evidence messages, accept a dispute, and manage supporting documents. Disputes represent cardhold...

Omise Transfers API

Move funds from your Omise balance out to a bank account recipient - create, list, retrieve, update, and delete transfers, with fee, VAT, and net breakdowns. Test-mode mark_as_s...

Omise Recipients API

Manage the individual or corporation recipients that transfers are paid to - create, list, retrieve, update, delete, and verify - each holding a destination bank account, tax ID...

Omise Schedules API

Automate recurring charges and transfers on a day, week, or month period with day-of-month or weekday rules and start / end dates. Create, list, retrieve, and delete schedules a...

Omise Links API

Generate shareable payment Links for a fixed amount and currency that collect a charge without custom checkout code. Links can be single-use or multiple-use; list the charges cr...

Omise Events API

Retrieve and list account events - each a keyed record (for example charge.create or refund.create) wrapping the object that changed. Events back Omise webhooks, which POST the ...

Omise Account and Balance API

Retrieve your account profile (country, currencies, webhook URI, transfer configuration, default API version) and your current balance - total, transferable, and reserve amounts...

Collections

Pricing Plans

Omise Plans Pricing

3 plans

PLANS

Rate Limits

Omise Rate Limits

2 limits

RATE LIMITS

FinOps

Omise Finops

FINOPS

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Build 1

SDKs, sample code, and the tooling you integrate with

Access & Security 2

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Omise (Opn Payments) API
  version: '2019-05-29'
request:
  auth:
    type: basic
    username: '{{secretKey}}'
    password: ''
items:
- info:
    name: Charges
    type: folder
  items:
  - info:
      name: Create a charge.
      type: http
    http:
      method: POST
      url: https://api.omise.co/charges
      body:
        type: json
        data: "{\n  \"amount\": 100000,\n  \"currency\": \"THB\",\n  \"card\": \"tokn_test_xxx\",\n  \"capture\": true\n}"
    docs: Creates a charge funded by a token, a saved customer card, or a source. Set capture=false to authorize only.
  - info:
      name: List charges.
      type: http
    http:
      method: GET
      url: https://api.omise.co/charges
    docs: Returns a paginated list of charges.
  - info:
      name: Retrieve a charge.
      type: http
    http:
      method: GET
      url: https://api.omise.co/charges/:id
      params:
      - name: id
        value: ''
        type: path
        description: The charge id.
    docs: Returns the charge matching the id.
  - info:
      name: Update a charge.
      type: http
    http:
      method: PATCH
      url: https://api.omise.co/charges/:id
      params:
      - name: id
        value: ''
        type: path
        description: The charge id.
      body:
        type: json
        data: "{\n  \"description\": \"Updated\"\n}"
    docs: Updates the description or metadata of a charge.
  - info:
      name: Capture a charge.
      type: http
    http:
      method: POST
      url: https://api.omise.co/charges/:id/capture
      params:
      - name: id
        value: ''
        type: path
        description: The charge id.
    docs: Captures a previously authorized (uncaptured) charge.
  - info:
      name: Reverse a charge.
      type: http
    http:
      method: POST
      url: https://api.omise.co/charges/:id/reverse
      params:
      - name: id
        value: ''
        type: path
        description: The charge id.
    docs: Reverses an authorized charge that has not been captured.
  - info:
      name: Expire a charge.
      type: http
    http:
      method: POST
      url: https://api.omise.co/charges/:id/expire
      params:
      - name: id
        value: ''
        type: path
        description: The charge id.
    docs: Expires a pending charge so it can no longer be paid.
- info:
    name: Tokens (vault)
    type: folder
  items:
  - info:
      name: Create a token.
      type: http
    http:
      method: POST
      url: https://vault.omise.co/tokens
      auth:
        type: basic
        username: '{{publicKey}}'
        password: ''
      body:
        type: json
        data: "{\n  \"card\": {\n    \"name\": \"Somchai\",\n    \"number\": \"4242424242424242\",\n    \"expiration_month\"\
          : 12,\n    \"expiration_year\": 2027,\n    \"security_code\": \"123\"\n  }\n}"
    docs: Tokenizes raw card data on the PCI-scoped vault host using the public key. Tokens are single-use.
  - info:
      name: Retrieve a token.
      type: http
    http:
      method: GET
      url: https://vault.omise.co/tokens/:id
      auth:
        type: basic
        username: '{{publicKey}}'
        password: ''
      params:
      - name: id
        value: ''
        type: path
        description: The token id.
    docs: Retrieves a token by id from the vault host.
- info:
    name: Sources
    type: folder
  items:
  - info:
      name: Create a source.
      type: http
    http:
      method: POST
      url: https://api.omise.co/sources
      body:
        type: json
        data: "{\n  \"type\": \"promptpay\",\n  \"amount\": 100000,\n  \"currency\": \"THB\"\n}"
    docs: Creates a payment source for a non-card method (promptpay, truemoney, internet/mobile banking, installments, wallets).
  - info:
      name: Retrieve a source.
      type: http
    http:
      method: GET
      url: https://api.omise.co/sources/:id
      params:
      - name: id
        value: ''
        type: path
        description: The source id.
    docs: Retrieves a source by id.
- info:
    name: Customers
    type: folder
  items:
  - info:
      name: Create a customer.
      type: http
    http:
      method: POST
      url: https://api.omise.co/customers
      body:
        type: json
        data: "{\n  \"email\": \"customer@example.com\",\n  \"description\": \"Test customer\",\n  \"card\": \"tokn_test_xxx\"\
          \n}"
    docs: Creates a customer; passing a card token saves it as a reusable card.
  - info:
      name: List customers.
      type: http
    http:
      method: GET
      url: https://api.omise.co/customers
    docs: Returns a list of customers.
  - info:
      name: Retrieve a customer.
      type: http
    http:
      method: GET
      url: https://api.omise.co/customers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The customer id.
    docs: Returns the customer matching the id.
  - info:
      name: Update a customer.
      type: http
    http:
      method: PATCH
      url: https://api.omise.co/customers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The customer id.
      body:
        type: json
        data: "{\n  \"description\": \"Updated\"\n}"
    docs: Updates a customer; pass a token in card to attach a new saved card.
  - info:
      name: Delete a customer.
      type: http
    http:
      method: DELETE
      url: https://api.omise.co/customers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The customer id.
    docs: Destroys the customer matching the id.
  - info:
      name: List a customer's cards.
      type: http
    http:
      method: GET
      url: https://api.omise.co/customers/:id/cards
      params:
      - name: id
        value: ''
        type: path
        description: The customer id.
    docs: Lists the cards saved against a customer.
- info:
    name: Refunds
    type: folder
  items:
  - info:
      name: Create a refund.
      type: http
    http:
      method: POST
      url: https://api.omise.co/charges/:id/refunds
      params:
      - name: id
        value: ''
        type: path
        description: The charge id.
      body:
        type: json
        data: "{\n  \"amount\": 100000\n}"
    docs: Refunds all or part of a charge.
  - info:
      name: List refunds for a charge.
      type: http
    http:
      method: GET
      url: https://api.omise.co/charges/:id/refunds
      params:
      - name: id
        value: ''
        type: path
        description: The charge id.
    docs: Lists refunds for a charge.
  - info:
      name: List all refunds.
      type: http
    http:
      method: GET
      url: https://api.omise.co/refunds
    docs: Lists refunds across the account.
- info:
    name: Disputes
    type: folder
  items:
  - info:
      name: List disputes.
      type: http
    http:
      method: GET
      url: https://api.omise.co/disputes
    docs: Lists all disputes.
  - info:
      name: List disputes by status.
      type: http
    http:
      method: GET
      url: https://api.omise.co/disputes/:status
      params:
      - name: status
        value: open
        type: path
        description: open, pending, or closed.
    docs: Lists disputes filtered by status.
  - info:
      name: Retrieve a dispute.
      type: http
    http:
      method: GET
      url: https://api.omise.co/disputes/:id
      params:
      - name: id
        value: ''
        type: path
        description: The dispute id.
    docs: Retrieves a dispute by id.
  - info:
      name: Accept a dispute.
      type: http
    http:
      method: PATCH
      url: https://api.omise.co/disputes/:id/accept
      params:
      - name: id
        value: ''
        type: path
        description: The dispute id.
    docs: Accepts a dispute, conceding the chargeback.
- info:
    name: Transfers
    type: folder
  items:
  - info:
      name: Create a transfer.
      type: http
    http:
      method: POST
      url: https://api.omise.co/transfers
      body:
        type: json
        data: "{\n  \"amount\": 100000\n}"
    docs: Creates a transfer (payout) from your balance to a recipient.
  - info:
      name: List transfers.
      type: http
    http:
      method: GET
      url: https://api.omise.co/transfers
    docs: Lists transfers.
  - info:
      name: Retrieve a transfer.
      type: http
    http:
      method: GET
      url: https://api.omise.co/transfers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The transfer id.
    docs: Retrieves a transfer by id.
  - info:
      name: Delete a transfer.
      type: http
    http:
      method: DELETE
      url: https://api.omise.co/transfers/:id
      params:
      - name: id
        value: ''
        type: path
        description: The transfer id.
    docs: Deletes a transfer that has not been sent.
- info:
    name: Recipients
    type: folder
  items:
  - info:
      name: Create a recipient.
      type: http
    http:
      method: POST
      url: https://api.omise.co/recipients
      body:
        type: json
        data: "{\n  \"name\": \"Somchai\",\n  \"type\": \"individual\",\n  \"bank_account\": {\n    \"brand\": \"bbl\",\n\
          \    \"number\": \"1234567890\",\n    \"name\": \"Somchai\"\n  }\n}"
    docs: Creates a recipient with a destination bank account.
  - info:
      name: List recipients.
      type: http
    http:
      method: GET
      url: https://api.omise.co/recipients
    docs: Lists recipients.
  - info:
      name: Retrieve a recipient.
      type: http
    http:
      method: GET
      url: https://api.omise.co/recipients/:id
      params:
      - name: id
        value: ''
        type: path
        description: The recipient id.
    docs: Retrieves a recipient by id.
  - info:
      name: Verify a recipient.
      type: http
    http:
      method: PATCH
      url: https://api.omise.co/recipients/:id/verify
      params:
      - name: id
        value: ''
        type: path
        description: The recipient id.
    docs: Marks a recipient as verified.
- info:
    name: Schedules
    type: folder
  items:
  - info:
      name: Create a schedule.
      type: http
    http:
      method: POST
      url: https://api.omise.co/schedules
      body:
        type: json
        data: "{\n  \"every\": 1,\n  \"period\": \"month\",\n  \"on\": { \"days_of_month\": [1] },\n  \"start_date\": \"2026-08-01\"\
          ,\n  \"end_date\": \"2027-08-01\",\n  \"charge\": { \"customer\": \"cust_test_xxx\", \"amount\": 100000 }\n}"
    docs: Creates a recurring charge or transfer schedule.
  - info:
      name: List schedules.
      type: http
    http:
      method: GET
      url: https://api.omise.co/schedules
    docs: Lists schedules.
  - info:
      name: Retrieve a schedule.
      type: http
    http:
      method: GET
      url: https://api.omise.co/schedules/:id
      params:
      - name: id
        value: ''
        type: path
        description: The schedule id.
    docs: Retrieves a schedule by id.
  - info:
      name: List schedule occurrences.
      type: http
    http:
      method: GET
      url: https://api.omise.co/schedules/:id/occurrences
      params:
      - name: id
        value: ''
        type: path
        description: The schedule id.
    docs: Lists the occurrences generated by a schedule.
- info:
    name: Links
    type: folder
  items:
  - info:
      name: Create a payment link.
      type: http
    http:
      method: POST
      url: https://api.omise.co/links
      body:
        type: json
        data: "{\n  \"amount\": 100000,\n  \"currency\": \"THB\",\n  \"title\": \"T-shirt\",\n  \"description\": \"Blue, size\
          \ M\",\n  \"multiple\": false\n}"
    docs: Creates a shareable payment link.
  - info:
      name: List payment links.
      type: http
    http:
      method: GET
      url: https://api.omise.co/links
    docs: Lists payment links.
  - info:
      name: Retrieve a payment link.
      type: http
    http:
      method: GET
      url: https://api.omise.co/links/:id
      params:
      - name: id
        value: ''
        type: path
        description: The link id.
    docs: Retrieves a payment link by id.
- info:
    name: Events
    type: folder
  items:
  - info:
      name: List events.
      type: http
    http:
      method: GET
      url: https://api.omise.co/events
    docs: Lists account events (these back webhooks).
  - info:
      name: Retrieve an event.
      type: http
    http:
      method: GET
      url: https://api.omise.co/events/:id
      params:
      - name: id
        value: ''
        type: path
        description: The event id.
    docs: Retrieves an event by id.
- info:
    name: Account and Balance
    type: folder
  items:
  - info:
      name: Retrieve the account.
      type: http
    http:
      method: GET
      url: https://api.omise.co/account
    docs: Retrieves the account profile.
  - info:
      name: Retrieve the balance.
      type: http
    http:
      method: GET
      url: https://api.omise.co/balance
    docs: Retrieves the account balance (total, transferable, reserve).
bundled: true