PayU Payout API
To widthraw funds from the PayU account you need to create a payout.
To widthraw funds from the PayU account you need to create a payout.
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-payout-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 Payout 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: Payout
description: To widthraw funds from the PayU account you need to create a payout.
paths:
/api/v2_1/payouts:
post:
tags:
- Payout
summary: Create a Payout
description: Create a payout with the selected destination of funds.
operationId: create-a-payout
parameters:
- 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:
description: Parameters for creating payouts.
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/StandardPayout'
- $ref: '#/components/schemas/BankAccountPayout'
- $ref: '#/components/schemas/CardPayout'
- $ref: '#/components/schemas/MarketplacePayout'
- $ref: '#/components/schemas/FxPayout'
responses:
'201':
x-summary: Created
description: ''
content:
application/json:
schema:
type: object
properties:
payout:
type: object
properties:
payoutId:
type: string
extPayoutId:
type: string
extCustomerId:
type: string
amount:
type: long
example: 10000
currencyCode:
type: string
example: PLN
status:
type: string
enum:
- PENDING
- WAITING
- CANCELLED
- REALIZED
fxData:
type: object
properties:
currencyCode:
type: string
example: EUR
amount:
type: long
example: 2500
rate:
type: double
example: 0.25
partnerId:
type: string
tableId:
type: string
status:
type: object
properties:
statusCode:
type: string
'400':
x-summary: Bad Request
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/400'
'401':
x-summary: Unauthorized
description: ''
content:
application/json:
schema:
type: object
properties:
error:
type: string
error_description:
type: string
'403':
x-summary: Forbidden
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
x-summary: Not found
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/404'
/api/v2_1/payouts/{payoutId}:
get:
tags:
- Payout
summary: Retrieve a Payout
description: Retrieve data of a specified payout.
operationId: retrieve-a-payout
parameters:
- name: payoutId
in: path
example: fefa25e021b14970bfac9ebfb20761dc
description: Payout ID generated by the PayU system
required: true
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
properties:
payout:
type: object
properties:
payoutId:
type: string
extPayoutId:
type: string
amount:
type: long
example: 10000
description:
type: string
status:
type: string
enum:
- PENDING
- WAITING
- CANCELLED
- REALIZED
fxData:
type: object
properties:
currencyCode:
type: string
amount:
type: long
example: 2500
rate:
type: double
example: 0.25
partnerId:
type: string
tableId:
type: string
status:
type: object
properties:
statusCode:
type: string
'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/401'
'403':
x-summary: Forbidden
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/403'
'404':
x-summary: Not found
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/404'
components:
schemas:
MarketplacePayout:
type: object
title: Payout for Marketplace
required:
- shopId
- payout
- account
properties:
shopId:
type: string
description: Public identifier for the shop within PayU, under which payout will be executed.
example: 1a2B3Cx
account:
type: object
required:
- extCustomerId
description: Information about submerchant account to which payout should be sent.
properties:
extCustomerId:
type: string
description: Unique submerchant identifier assigned by the Marketplace.
example: submerchant1
payout:
type: object
required:
- currencyCode
- amount
- extPayoutId
properties:
description:
type: string
description: Payout description.
extPayoutId:
type: string
description: External identificator of Payout assigned by Merchant. Parameter must be unique within the scope of a given shop, upon encountering an error, you should use a different value.
minLength: 1
maxLength: 64
amount:
type: long
description: Amount for which Payout should be created.
example: 49
currencyCode:
type: string
format: ISO4217
minLength: 3
maxLength: 3
description: Shop currency from which the conversion will be made.
example: PLN
fxData:
type: object
description: Section containing details of the payout conversion.
required:
- partnerId
- currencyCode
- amount
- rate
- tableId
properties:
partnerId:
type: string
description: Partner id for currency exchange at PayU.
example: 9999e44b-f68f-42e1-ad6c-3735ba1e2954
currencyCode:
type: string
format: ISO4217
minLength: 3
maxLength: 3
enum:
- PLN
- EUR
- CZK
description: Currency code after conversion. Currently supported currency codes are **PLN**, **EUR**, **CZK**.
example: EUR
amount:
type: long
description: The amount of payout after conversion that the marketplace seller will receive.
example: 11
rate:
type: double
description: The rate at which the payout currency is converted.
example: 0.22458
tableId:
type: string
description: The ID of the exchange rate table retrieved by the merchant from PayU, determining the basis for currency conversion during payment.
example: '2055'
'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.
customerAddress:
type: object
required:
- name
description: Payout recipient's name.
properties:
name:
type: string
description: Payout recipient's name.
countryCode:
type: string
description: Payout recipient's address details. Two-letter country code compliant with ISO-3166. <b>Required for <code>foreign</code> flag set to true</b>.
city:
type: string
description: Payout recipient's address details - city. <b>Required for <code>foreign</code> flag set to true</b>.
postalCode:
type: string
description: Payout recipient's address details - postal code.
street:
type: string
description: Payout recipient's address details - street. <b>Required for <code>foreign</code> flag set to true</b>.
BankAccountPayout:
type: object
title: Bank Account Payout
required:
- shopId
- payout
- account
- customerAddress
properties:
shopId:
type: string
description: Public identifier for the shop within PayU, under which payout will be executed.
example: 1a2B3Cx
payout:
$ref: '#/components/schemas/payout'
account:
$ref: '#/components/schemas/account'
customerAddress:
$ref: '#/components/schemas/customerAddress'
bankAddress:
$ref: '#/components/schemas/bankAddress'
StandardPayout:
type: object
title: Standard Payout
required:
- shopId
properties:
shopId:
type: string
description: Public identifier for the shop within PayU, under which payout will be executed.
example: 1a2B3Cx
payout:
type: object
required:
- amount
- extPayoutId
description: Payout information.
properties:
description:
type: string
description: Payout description.
extPayoutId:
type: string
description: External identificator of Payout assigned by Merchant. Parameter must be unique within the scope of a given shop, upon encountering an error, you should use a different value.
minLength: 1
maxLength: 64
amount:
type: number
description: amount for which Payout should be created
example: 987654321
additionalVariables:
type: string
format: VS=888111
description: Allows sending additional information to the system (Variable Symbol). Data from this field is send only to the supporting banks. <b>This solution is dedicated only for Czech market.</b>
example: VS=888111
cardForPayout:
type: object
description: Data of the card that the payout will be made to. <b>Required in case of a payout to the card number</b>.
required:
- number
- expirationMonth
- expirationYear
properties:
number:
type: string
description: Card number.
example: '4444333322221111'
expirationMonth:
type: string
description: Card's expiration date - month.
example: '11'
expirationYear:
type: string
description: Card's expiration date - year.
example: '2029'
payee:
type: object
description: Required section designed to limit the risk of fraud or money laundering.
required:
- extCustomerId
- accountCreationDate
- email
properties:
extCustomerId:
type: string
description: Customer (payee) id assigned in the merchant system.
minLength: 1
maxLength: 64
example: customer-id-1
accountCreationDate:
type: string
format: '2025-03-27T00:00:00.000Z'
description: Date when the user was created in the merchant system.
example: '2025-03-27T00:00:00.000Z'
phoneNumber:
type: string
description: Customer (payee) phone number.
minLength: 1
maxLength: 64
example: 48 225108001
email:
type: string
description: Customer (payee) email address.
minLength: 1
maxLength: 256
example: email@email.com
'401':
type: object
properties:
status:
type: object
properties:
statusCode:
type: string
description: Error type.
code:
type: string
description: Identification code of specific error.
codeLiteral:
type: string
description: Cause of the error.
statusDesc:
type: string
description: Error description.
'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.
CardPayout:
type: object
title: Card Payout
required:
- shopId
- payout
- payee
- customerAddress
properties:
shopId:
type: string
description: Public identifier for the shop within PayU, under which payout will be executed.
example: 1a2B3Cx
payout:
$ref: '#/components/schemas/payout'
payee:
$ref: '#/components/schemas/payee'
customerAddress:
$ref: '#/components/schemas/customerAddress'
cardToken:
type: string
description: Card token representing card to which payout will be made. <b>Required in case of a payout to the card token</b>.
example: TOKC_2IHRST6HKSST3H62K2GS8pElI862
card:
$ref: '#/components/schemas/cardForPayout'
payout:
type: object
description: Payout information.
required:
- amount
- extPayoutId
properties:
description:
type: string
description: Payout description.
extPayoutId:
type: string
description: External identificator of Payout assigned by Merchant. Parameter must be unique within the scope of a given shop, upon encountering an error, you should use a different value.
minLength: 1
maxLength: 64
amount:
type: long
description: Amount for which Payout should be created.
example: 10000
additionalVariables:
type: string
format: VS=888111
description: Allows sending additional information to the system (Variable Symbol). Data from this field is send only to the supporting banks. <b>This solution is dedicated only for Czech market</b>.
example: VS=888111
foreign:
type: string
description: Flag indicating whether payout was made to a foreign account.
bankAddress:
type: object
description: Bank address information.
properties:
street:
type: string
description: Bank address information - street. <b>Required for <code>foreign</code> flag set to true</b>.
postalCode:
type: string
description: Bank address information - postal code. <b>Required for <code>foreign</code> flag set to true</b>.
city:
type: string
description: Bank address information - city. <b>Required for <code>foreign</code> flag set to true</b>.
countryCode:
type: string
description: Bank address information. Two-letter country code compliant with ISO-3166. <b>Required for <code>foreign</code> flag set to true</b>.
'403':
type: object
properties:
status:
type: object
properties:
error:
type: string
description: Error type.
enum:
- access_denied
error_description:
type: string
description: Description of error.
enum:
- Access is denied
account:
type: object
required:
- accountNumber
description: Information about account to which payout should be sent.
properties:
accountNumber:
type: string
description: 'Bank account number. Required account formats for foreign transfers: Polish account: NRB, IBAN. Czech account: IBAN, internal in ([0-9]{1,6}[ -])?[0-9]{2,10}[ /][0-9]{4}) format. As for now, there is no format restrictions for national bank transfers.'
bankName:
type: string
description: Name of the bank. <b>Required for <code>foreign</code> flag set to true</b>.
swiftCode:
type: string
description: Bank's SWIFT code. <b>Required for <code>foreign</code> flag set to true</b>.
FxPayout:
type: object
title: FxPayout
required:
- shopId
- payout
- account
- fxData
properties:
shopId:
type: string
description: Public identifier for the shop within PayU, under which payout will be executed.
example: 1a2B3Cx
account:
type: object
required:
- extCustomerId
description: Information about submerchant account to which payout should be sent.
properties:
extCustomerId:
type: string
description: Unique submerchant identifier assigned by the Marketplace.
example: submerchant1
payout:
type: object
required:
- currencyCode
- amount
- extPayoutId
properties:
description:
type: string
description: Payout description.
extPayoutId:
type: string
description: External identificator of Payout assigned by Merchant. Parameter must be unique within the scope of a given shop, upon encountering an error, you should use a different value.
minLength: 1
maxLength: 64
amount:
type: long
description: Amount for which Payout should be created.
example: 49
currencyCode:
type: string
format: ISO4217
minLength: 3
maxLength: 3
description: Shop currency from which the conversion will be made.
example: PLN
fxData:
$ref: '#/components/schemas/fxData'
securitySchemes:
Bearer:
type: http
scheme: bearer
Basic:
type: http
scheme: basic