PayU Refund API
The PayU system fully supports refunds for the processed payments, the balance of which is transferred directly to the buyer's account.
The PayU system fully supports refunds for the processed payments, the balance of which is transferred directly to the buyer's account.
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/payu:payu-refund-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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:
version: 2.1.0
title: PayU GPO Europe REST Refund API
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
x-logo:
url: https://poland.payu.com/wp-content/themes/global-website/assets/src/images/payu-logo.svg
description: '# Overview
This reference is designed to assist you in effectively utilizing the PayU REST API to enhance your online payment capabilities.'
servers:
- url: https://secure.payu.com
description: Production Server
- url: https://secure.snd.payu.com
description: Sandbox Test Server
security:
- Bearer:
- client_credentials
tags:
- name: Refund
description: The PayU system fully supports refunds for the processed payments, the balance of which is transferred directly to the buyer's account.
paths:
/api/v2_1/orders/{orderId}/refunds:
post:
tags:
- Refund
summary: Create a Refund
description: Create new refund - this request is idempotent, so if exactly same data will be provided, response will return data of already previously created refund instead of creating new refund.
operationId: create-a-refund
parameters:
- name: orderId
in: path
example: WZGF5FFDRJ140731GUEST000P01
description: Order ID generated by the PayU system
required: true
schema:
type: string
content:
application/json:
schema:
type: string
- name: Content-Type
in: header
description: Content type
required: true
schema:
type: string
style: simple
example: application/json
- name: Authorization
in: header
description: Auth token
required: true
schema:
type: string
style: simple
example: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd
requestBody:
content:
application/json:
schema:
type: object
required:
- refund
properties:
refund:
type: object
required:
- description
description: Contains detailed information about a refund.
properties:
description:
type: string
description: Refund description.
example: Test refund
amount:
type: string
description: "Amount of the refund. If this is left blank, all funds will be returned to the buyer. \n\nSpecify prices using the **lowest currency unit**. For instance, in the case of PLN (Polish Złoty), the lowest currency unit is the penny, which equals 1/100 PLN. Therefore, if the price is 1000 in the lowest currency unit, it would be equivalent to 10 PLN. However, HUF (Hungarian Forint) is an exception to this rule. For HUF, you should multiply the amount by 100.\n"
example: '10000'
extRefundId:
type: string
description: External refund ID.
example: 3e5cac39-7e38-4139-8fd6-30adc06a61bd
currencyCode:
type: string
description: Currency code compliant with ISO 4217.
example: PLN
bankDescription:
type: string
description: Bank operation description.
example: Bank transfer refund
type:
type: string
description: Specifies the method by which the refund will be processed:<ul> <li><b>REFUND_PAYMENT_STANDARD</b> – The standard refund procedure.</li> <li><b>FAST</b> – An expedited refund process that may incur higher fees. <b>Available only to merchants operating through PayU GPO Romania</b>.</li> </ul>
enum:
- REFUND_PAYMENT_STANDARD
- FAST
default: REFUND_PAYMENT_STANDARD
example: REFUND_PAYMENT_STANDARD
responses:
'200':
x-summary: OK
description: ''
content:
application/json:
schema:
type: object
properties:
orderId:
type: string
description: ID of refunded order.
example: WZGF5FFDRJ140731GUEST000P01
refund:
type: object
description: Refund details.
properties:
refundId:
type: string
description: Refund identifier.
example: '5000000142'
description:
type: string
description: Refund description
example: Test refund
amount:
type: string
description: Amount of the refund. If this is left blank, all funds will be returned to the buyer.
example: '10000'
extRefundId:
type: string
description: External refund ID.
example: 3e5cac39-7e38-4139-8fd6-30adc06a61bd
currencyCode:
type: string
description: Currency code compliant with ISO 4217.
example: PLN
bankDescription:
type: string
description: Bank operation description.
example: Bank transfer refund
creationDateTime:
type: string
description: Date of refund creation.
example: '2020-07-02T09:19:03.896+02:00'
status:
type: string
description: Refund status code.
enum:
- PENDING
- CANCELED
- FINALIZED
example: PENDING
statusDatetime:
type: string
description: Timestamp of the status.
example: '2020-07-02T09:19:04.013+02:00'
status:
type: object
properties:
statusCode:
type: string
description: Status of the refund.
example: SUCCESS
statusDesc:
type: string
description: Description og given status.
example: Refund queued for processing
'400':
x-summary: Bad request
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
x-summary: Unauthorized
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/404'
get:
tags:
- Refund
summary: Retrieve ALL Refunds Data for the Specified Order
operationId: retrieve-all-refunds-for-the-specified-order
parameters:
- name: orderId
in: path
example: WZHF5FFDRJ140731GUEST000P01
description: Order ID generated by the PayU system
required: true
schema:
type: string
content:
application/json:
schema:
type: string
- name: Content-Type
in: header
description: Content type
required: true
schema:
type: string
style: simple
example: application/json
- name: Authorization
in: header
description: Auth token
required: true
schema:
type: string
style: simple
example: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd
responses:
'200':
x-summary: OK
description: ''
content:
application/json:
schema:
type: array
items:
- $ref: '#/components/schemas/refundRetrievePending'
- $ref: '#/components/schemas/refundRetrieveCanceled'
'404':
x-summary: Not Found
description: ''
content:
application/json:
schema:
type: object
properties:
status:
type: object
properties:
statusCode:
type: string
description: Error type.
severity:
type: string
statusDesc:
type: string
description: Error description.
/api/v2_1/orders/{orderId}/refunds/{refundId}:
get:
tags:
- Refund
summary: Retrieve Specific Refund Data
operationId: retrieve-specific-refund
parameters:
- name: orderId
in: path
example: WZHF5FFDRJ140731GUEST000P01
description: Order ID generated by the PayU system
required: true
schema:
type: string
content:
application/json:
schema:
type: string
- name: refundId
in: path
example: '5000000142'
description: Refund identifier in the PayU system.
required: true
schema:
type: string
content:
application/json:
schema:
type: string
- name: Content-Type
in: header
description: Content type
required: true
schema:
type: string
style: simple
example: application/json
- name: Authorization
in: header
description: Auth token
required: true
schema:
type: string
style: simple
example: Bearer 3e5cac39-7e38-4139-8fd6-30adc06a61bd
responses:
'200':
x-summary: OK
description: ''
content:
application/json:
schema:
type: object
discriminator:
propertyName: status
mapping:
FINALIZED: '#/components/schemas/refundRetrieveFinalized'
PENDING: '#/components/schemas/refundRetrievePending'
CANCELED: '#/components/schemas/refundRetrieveCanceled'
anyOf:
- $ref: '#/components/schemas/refundRetrieveFinalized'
- $ref: '#/components/schemas/refundRetrievePending'
- $ref: '#/components/schemas/refundRetrieveCanceled'
'401':
x-summary: Unauthorized
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/404'
'404':
x-summary: Not Found
description: ''
content:
application/json:
schema:
type: object
properties:
status:
type: object
properties:
statusCode:
type: string
description: Error type.
severity:
type: string
statusDesc:
type: string
description: Error description.
components:
schemas:
refundRetrieveCanceled:
type: object
properties:
refundId:
type: string
description: ID of the refund
example: '5000000142'
extRefundId:
type: string
description: External refund ID.
example: hdjJduUEEH2
amount:
type: string
description: Amount of the refund. If this is left blank, all funds will be returned to the buyer.
example: 10000
description:
type: string
description: Refund description
example: Refund for order <orderId>
creationDateTime:
type: string
description: Date of refund creation.
example: '2020-07-02T09:19:03.896+02:00'
currencyCode:
type: string
description: Currency code compliant with ISO 4217.
statusDatetime:
type: string
description: Timestamp of the status.
example: '2020-07-02T09:19:04.016+02:00'
status:
type: string
description: Refund status code.
statusError:
type: object
description: Information about error.
properties:
code:
type: string
description: Error type.
description:
type: string
description: Error information.
refundRetrievePending:
type: object
properties:
refundId:
type: string
description: ID of the refund
example: '5000000142'
extRefundId:
type: string
description: External refund ID.
example: hdjJduUEEH2
amount:
type: string
description: Amount of the refund. If this is left blank, all funds will be returned to the buyer.
example: 10000
description:
type: string
description: Refund description
example: Refund for order <orderId>
creationDateTime:
type: string
description: Date of refund creation.
example: '2020-07-02T09:19:03.896+02:00'
currencyCode:
type: string
description: Currency code compliant with ISO 4217.
statusDatetime:
type: string
description: Timestamp of the status.
example: '2020-07-02T09:19:04.016+02:00'
status:
type: string
description: Refund status code.
example: PENDING
'404':
type: object
properties:
status:
type: object
properties:
statusCode:
type: string
description: Error type.
severity:
type: string
description: error severity type.
statusDesc:
type: string
description: Error description.
refundRetrieveFinalized:
type: object
properties:
refundId:
type: string
description: ID of the refund
example: '5000000142'
extRefundId:
type: string
description: External refund ID.
example: hdjJduUEEH2
amount:
type: string
description: Amount of the refund. If this is left blank, all funds will be returned to the buyer.
example: 10000
description:
type: string
description: Refund description
example: Refund for order <orderId>
creationDateTime:
type: string
description: Date of refund creation.
example: '2020-07-02T09:19:03.896+02:00'
currencyCode:
type: string
description: Currency code compliant with ISO 4217.
statusDatetime:
type: string
description: Timestamp of the status.
example: '2020-07-02T09:19:04.016+02:00'
status:
type: string
description: Refund status code.
example: FINALIZED
'400':
type: object
properties:
status:
type: object
properties:
statusCode:
type: string
description: Error type.
severity:
type: string
description: error severity type.
code:
type: string
description: Identification code of specific error.
codeLiteral:
type: string
description: Cause of the error.
statusDesc:
type: string
description: Error description.
securitySchemes:
Bearer:
type: http
scheme: bearer
Basic:
type: http
scheme: basic