Open (open.money) Refund API
The Refund API from Open (open.money) — 2 operation(s) for refund.
The Refund API from Open (open.money) — 2 operation(s) for refund.
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/open-financial:open-financial-refund-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: 1 Refund API
version: '1'
servers:
- url: https://api.zwitch.io
security:
- sec0: []
tags:
- name: Refund
paths:
/refund/batch:
post:
summary: Batch Refund API
description: Initiates a batch of refunds in a single request. Each refund item is processed independently — some may succeed while others are rejected within the same batch.
operationId: batch-refund-api
requestBody:
content:
application/json:
schema:
type: object
required:
- refund_batch_id
- refunds
properties:
refund_batch_id:
type: string
description: Unique batch identifier from the merchant. Must not have been used before for this merchant.
refunds:
type: array
description: List of refund items in the batch.
items:
properties:
payment_id:
type: string
description: Open PG transaction ID of the payment to refund.
amount:
type: number
description: Refund amount (supports decimals).
format: float
merchant_reference_id:
type: string
description: Unique reference ID per refund item from the merchant.
required:
- payment_id
- amount
- merchant_reference_id
type: object
examples:
Batch Refund:
value:
refund_batch_id: BATCH-2026-001
refunds:
- payment_id: opg_abc1234567
amount: 500
merchant_reference_id: MER-REF-001
- payment_id: opg_xyz9876543
amount: 250
merchant_reference_id: MER-REF-002
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"batch_status\": \"success\",\n \"refund_batch_id\": \"BATCH-2026-001\",\n \"refunds\": [\n {\n \"refund_id\": \"rf_xxxxxxxxxxxx\",\n \"amount\": 500.00,\n \"refund_status\": \"request_initiated\",\n \"message\": \"Request initiated successfully\",\n \"merchant_reference_id\": \"MER-REF-001\"\n },\n {\n \"refund_id\": \"rf_yyyyyyyyyyyy\",\n \"amount\": 250.00,\n \"refund_status\": \"rejected\",\n \"message\": \"Payment is not in a refundable status\",\n \"merchant_reference_id\": \"MER-REF-002\"\n }\n ]\n}\n\n"
schema:
type: object
properties:
batch_status:
type: string
example: success
refund_batch_id:
type: string
example: BATCH-2026-001
refunds:
type: array
items:
type: object
properties:
refund_id:
type: string
example: rf_xxxxxxxxxxxx
amount:
type: integer
example: 500
default: 0
refund_status:
type: string
example: request_initiated
message:
type: string
example: Request initiated successfully
merchant_reference_id:
type: string
example: MER-REF-001
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Refund
/refund/batch/requery:
get:
summary: Requery Batch Refund
description: ''
operationId: requery-batch-refund
parameters:
- name: refund_batch_id
in: query
description: Fetch all refunds belonging to a batch.
schema:
type: string
- name: refund_id
in: query
description: Fetch a single refund by its system-generated ID.
schema:
type: string
- name: merchant_reference_id
in: query
description: Fetch a single refund by the merchant's reference ID.
schema:
type: string
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"refund_batch_id\": \"BATCH-2026-001\",\n \"refunds\": [\n {\n \"refund_id\": \"rf_xxxxxxxxxxxx\",\n \"payment_id\": \"opg_abc1234567\",\n \"amount\": 500.00,\n \"refund_status\": \"request_initiated\",\n \"merchant_reference_id\": \"MER-REF-001\",\n \"refund_batch_id\": \"BATCH-2026-001\"\n }\n ]\n}\n\n"
schema:
type: object
properties:
refund_batch_id:
type: string
example: BATCH-2026-001
refunds:
type: array
items:
type: object
properties:
refund_id:
type: string
example: rf_xxxxxxxxxxxx
payment_id:
type: string
example: opg_abc1234567
amount:
type: integer
example: 500
default: 0
refund_status:
type: string
example: request_initiated
merchant_reference_id:
type: string
example: MER-REF-001
refund_batch_id:
type: string
example: BATCH-2026-001
'400':
description: '400'
content:
application/json:
examples:
Result:
value: '{}'
schema:
type: object
properties: {}
deprecated: false
tags:
- Refund
components:
securitySchemes:
sec0:
type: apiKey
name: Authorization
in: header
x-bearer-format: bearer
x-default: ''
x-readme-fauxas: true
x-provenance:
method: searched
source: https://developers.zwitch.io/reference
harvested: '2026-10-14'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://developers.zwitch.io/reference/accounts-get-all.md
- https://developers.zwitch.io/reference/accounts-get-balance.md
- https://developers.zwitch.io/reference/accounts-get-by-id.md
- https://developers.zwitch.io/reference/accounts-get-statement.md
- https://developers.zwitch.io/reference/accounts-virtual-deactivate.md
- https://developers.zwitch.io/reference/accounts-virtual-test-balance.md
- https://developers.zwitch.io/reference/bank-account-verification-copy-1.md
- https://developers.zwitch.io/reference/batch-refund-api.md
- https://developers.zwitch.io/reference/beneficiaries-bank-account-create.md
- https://developers.zwitch.io/reference/beneficiaries-delete.md
- https://developers.zwitch.io/reference/beneficiaries-get-all.md
- https://developers.zwitch.io/reference/beneficiaries-get-by-id.md
- https://developers.zwitch.io/reference/beneficiaries-update.md
- https://developers.zwitch.io/reference/constants-business-categories.md
- https://developers.zwitch.io/reference/constants-business-types.md
- https://developers.zwitch.io/reference/constants-ifsc.md
- https://developers.zwitch.io/reference/constants-state-codes.md
- https://developers.zwitch.io/reference/create-payment-token.md
- https://developers.zwitch.io/reference/get-all-sub-accounts.md
- https://developers.zwitch.io/reference/get-sub-account-by-id.md
- https://developers.zwitch.io/reference/requery-batch-refund.md
- https://developers.zwitch.io/reference/status-check-api-with-payment_token.md
- https://developers.zwitch.io/reference/transfers-bulk-by-id.md
- https://developers.zwitch.io/reference/transfers-bulk-create.md
- https://developers.zwitch.io/reference/transfers-bulk-get-all.md
- https://developers.zwitch.io/reference/transfers-get-all.md
- https://developers.zwitch.io/reference/transfers-get-by-id.md
- https://developers.zwitch.io/reference/transfers-virtual-accounts-create-to-account-beneficiary.md
- https://developers.zwitch.io/reference/update-sub-account.md
- https://developers.zwitch.io/reference/upi-qr-intent-string.md
- https://developers.zwitch.io/reference/verifications-bank-account-create.md
- https://developers.zwitch.io/reference/verifications-name-create.md
- https://developers.zwitch.io/reference/verifications-pan-create.md
- https://developers.zwitch.io/reference/verifications-vpa-create.md
- https://developers.zwitch.io/reference/webhooks-get-all-events.md
merge:
pages: 35
deduped: 34
conflicts_kept_first: 1