GoTo Group (Gojek + Tokopedia) Transactions API
The Transactions API from GoTo Group (Gojek + Tokopedia) — 10 operation(s) for transactions.
The Transactions API from GoTo Group (Gojek + Tokopedia) — 10 operation(s) for transactions.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/goto-gojek-transactions-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Midtrans Core API (GoTo Financial) Tokenization Transactions API
description: Best-effort OpenAPI 3.1 for the Midtrans Core API operated by GoTo Financial (a GoTo Group company). Covers charge, capture, approve, deny, cancel, expire, refund, and status endpoints. Authentication is HTTP Basic using the Server Key as the username with an empty password.
version: v2
servers:
- url: https://api.sandbox.midtrans.com
description: Sandbox
- url: https://api.midtrans.com
description: Production
security:
- basicAuth: []
tags:
- name: Transactions
paths:
/v2/charge:
post:
tags:
- Transactions
summary: Charge a transaction
description: Initiate a Core API charge. Required fields are `payment_type` and `transaction_details`. The payload shape depends on the payment method (credit_card, bank_transfer, gopay, qris, etc.).
operationId: charge
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeRequest'
responses:
'200':
description: Charge response
content:
application/json:
schema:
$ref: '#/components/schemas/ChargeResponse'
'400':
description: Validation error
'401':
description: Unauthorized
'429':
description: Rate limit exceeded
/v2/{orderId}/status:
get:
tags:
- Transactions
summary: Get transaction status
operationId: getStatus
parameters:
- $ref: '#/components/parameters/OrderId'
responses:
'200':
description: Transaction status
content:
application/json:
schema:
$ref: '#/components/schemas/TransactionStatus'
/v2/{orderId}/status/b2b:
get:
tags:
- Transactions
summary: Get B2B transaction status
operationId: getStatusB2b
parameters:
- $ref: '#/components/parameters/OrderId'
responses:
'200':
description: B2B transaction status
/v2/{orderId}/approve:
post:
tags:
- Transactions
summary: Approve a challenged transaction
operationId: approve
parameters:
- $ref: '#/components/parameters/OrderId'
responses:
'200':
description: Approved
/v2/{orderId}/deny:
post:
tags:
- Transactions
summary: Deny a challenged transaction
operationId: deny
parameters:
- $ref: '#/components/parameters/OrderId'
responses:
'200':
description: Denied
/v2/{orderId}/cancel:
post:
tags:
- Transactions
summary: Cancel a transaction
operationId: cancel
parameters:
- $ref: '#/components/parameters/OrderId'
responses:
'200':
description: Cancelled
/v2/{orderId}/expire:
post:
tags:
- Transactions
summary: Expire a pending transaction
operationId: expire
parameters:
- $ref: '#/components/parameters/OrderId'
responses:
'200':
description: Expired
/v2/{orderId}/refund:
post:
tags:
- Transactions
summary: Refund a transaction
operationId: refund
parameters:
- $ref: '#/components/parameters/OrderId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RefundRequest'
responses:
'200':
description: Refunded
/v2/{orderId}/refund/online/direct:
post:
tags:
- Transactions
summary: Direct refund a transaction
operationId: refundDirect
parameters:
- $ref: '#/components/parameters/OrderId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/RefundRequest'
responses:
'200':
description: Refunded
/v2/capture:
post:
tags:
- Transactions
summary: Capture a pre-authorized credit card transaction
operationId: capture
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- transaction_id
- gross_amount
properties:
transaction_id:
type: string
gross_amount:
type: number
responses:
'200':
description: Captured
components:
parameters:
OrderId:
name: orderId
in: path
required: true
schema:
type: string
description: Either the merchant order_id or Midtrans transaction_id
schemas:
ChargeResponse:
type: object
properties:
status_code:
type: string
status_message:
type: string
transaction_id:
type: string
order_id:
type: string
merchant_id:
type: string
gross_amount:
type: string
currency:
type: string
payment_type:
type: string
transaction_time:
type: string
transaction_status:
type: string
fraud_status:
type: string
actions:
type: array
items:
type: object
properties:
name:
type: string
method:
type: string
url:
type: string
ChargeRequest:
type: object
required:
- payment_type
- transaction_details
properties:
payment_type:
type: string
enum:
- credit_card
- bank_transfer
- echannel
- permata
- gopay
- qris
- shopeepay
- cstore
- akulaku
- kredivo
transaction_details:
type: object
required:
- order_id
- gross_amount
properties:
order_id:
type: string
gross_amount:
type: number
item_details:
type: array
items:
type: object
properties:
id:
type: string
price:
type: number
quantity:
type: integer
name:
type: string
category:
type: string
customer_details:
type: object
properties:
first_name:
type: string
last_name:
type: string
email:
type: string
format: email
phone:
type: string
billing_address:
type: object
shipping_address:
type: object
credit_card:
type: object
bank_transfer:
type: object
gopay:
type: object
qris:
type: object
custom_field1:
type: string
custom_field2:
type: string
custom_field3:
type: string
metadata:
type: object
RefundRequest:
type: object
properties:
refund_key:
type: string
amount:
type: number
reason:
type: string
TransactionStatus:
type: object
properties:
status_code:
type: string
status_message:
type: string
transaction_id:
type: string
order_id:
type: string
gross_amount:
type: string
currency:
type: string
payment_type:
type: string
transaction_status:
type: string
enum:
- authorize
- capture
- settlement
- pending
- deny
- cancel
- expire
- failure
- refund
- partial_refund
- chargeback
- partial_chargeback
fraud_status:
type: string
enum:
- accept
- deny
- challenge
transaction_time:
type: string
settlement_time:
type: string
securitySchemes:
basicAuth:
type: http
scheme: basic
description: Server Key as username, empty password