openapi: 3.1.0
info:
version: 2.1.0
title: PayU GPO Europe REST Authorize 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. Whether you''re running an e-commerce store or developing applications that require secure and seamless payment processing, our API offers a range of features to meet your needs.
Our API offers a comprehensive set of endpoints to empower you with full control over your payment processes. With these endpoints, you can seamlessly create, capture, cancel, and retrieve orders, conduct payouts, and access essential reports.
For more details on the integration, please refer to the official PayU documentation. It provides comprehensive explanations, code samples, and best practices for seamless integration of the PayU API into your applications.
## Testing
### Production Environment
For a basic integration, including only a redirection to PayU hosted payment page, it is perfectly enough to use the public test point of sale. However, if you would like to test a full set of endpoints, including e.g. refunds, consider registering for a sandbox account.
**Public Test POS (point of sale)**
| Key name | Value |
| ------------------------------ | -------------------------------: |
| POS ID (pos_id) | 145227 |
| OAuth protocol - client_id | 145227 |
| Second key (MD5) | 13a980d4f851f3d9a1cfc792fb1f5e50 |
| OAuth protocol - client_secret | 12f071174cb7eb79d4aac5bc2f07563f |
### Sandbox Environment
Sandbox is an almost identical copy of PayU production system. It can be used for integration and testing purposes.
**Public Test POS (Point of Sale)**
Although it is best to create your own account to later be able to configure it as needed, you may also use a public sandbox test POS without registering:
| Key name | Value |
| ------------------------------ | -------------------------------: |
| POS ID (pos_id) | 300746 |
| OAuth protocol - client_id | 300746 |
| Second key (MD5) | b6ca15b0d1020e8094d9b5f8d163db54 |
| OAuth protocol - client_secret | 2ee86a66e5d97e3fadc400c9f19b065d |
The availability of the sandbox environment can be checked on the Status page.
**Testing Card Payments**
In order to test card payments on sandbox, please use credentials displayed on the Sandbox documentation page.'
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: Authorize
description: Authentication involves generating an OAuth token, which is used for further communication with PayU servers. To create a standard OAuth token, you will need client_id and client_secret keys, which can be found in your merchant panel, in the POS.
paths:
/pl/standard/user/oauth/authorize:
post:
tags:
- Authorize
summary: Create OAuth Token
security: []
description: "Each payment should be authorized in one of three available modes: \n- client_credentials - used for standard integration,\n- trusted_merchant - used for authentication of requests made for logged-in shop/application users with fixed extCustomerId,\n- partner - special type of a token meant for creating entities (e.g. Shop, POS, URL) within partner firm.\n\nGenerated access token is valid for 43199 seconds.\n"
operationId: oauth
requestBody:
content:
application/x-www-form-urlencoded:
schema:
discriminator:
propertyName: grant_type
mapping:
client_credentials: '#/components/schemas/ClientCredentials'
trusted_merchant: '#/components/schemas/TrustedMerchant'
partner: '#/components/schemas/Partner'
anyOf:
- $ref: '#/components/schemas/ClientCredentials'
- $ref: '#/components/schemas/TrustedMerchant'
- $ref: '#/components/schemas/Partner'
responses:
'200':
x-summary: OK
description: ''
content:
application/json:
schema:
type: object
properties:
access_token:
type: string
description: Token used for authentication of API calls.
format: uuid
token_type:
type: string
enum:
- bearer
refresh_token:
type: string
format: uuid
expires_in:
type: integer
description: Token expiration time (in seconds).
enum:
- 43199
grant_type:
type: string
description: Token authentication mode.
enum:
- client_credentials
- trusted_merchant
'400':
x-summary: Bad Request
description: ''
content:
application/json:
schema:
type: object
required:
- error
- error_description
properties:
error:
type: string
description: Cause of the error.
error_description:
type: string
description: Error description.
'401':
x-summary: Unauthorized
description: ''
content:
application/json:
schema:
type: object
required:
- error
- error_description
properties:
error:
type: string
description: Cause of the error.
error_description:
type: string
description: Error description.
components:
schemas:
Partner:
type: object
required:
- grant_type
- client_id
- client_secret
- firm_id
description: only usable with special Technical Partner priviliges that allow management of Firms, URLs, Shops and POSes created and managed by Partner
properties:
grant_type:
type: string
example: partner
enum:
- partner
description: Authorization mode
client_id:
type: string
example: '145227'
description: Partners client_id
client_secret:
type: string
example: 12f071174cb7eb79d4aac5bc2f07563f
description: Partners client_secret
firm_id:
type: string
example: p3BiPgVO
description: publicFirmId created by Partner that will be managed
TrustedMerchant:
type: object
required:
- grant_type
- client_id
- client_secret
- email
- ext_customer_id
properties:
grant_type:
type: string
example: trusted_merchant
enum:
- trusted_merchant
description: Authorization mode
client_id:
type: string
example: '145227'
description: Merchant's POS identifier in PayU's system. Can be found in PayU's merchant panel
client_secret:
type: string
example: 12f071174cb7eb79d4aac5bc2f07563f
description: Merchant's secret key. Can be found in PayU's merchant panel
email:
type: string
description: Customer's email address in merchant's system
ext_customer_id:
type: string
description: Customer's identifier in the merchant's system
ClientCredentials:
type: object
required:
- grant_type
- client_id
- client_secret
properties:
grant_type:
type: string
example: client_credentials
enum:
- client_credenitals
description: Authorization mode
client_id:
type: string
example: '145227'
description: Merchant's POS identifier in PayU's system. Can be found in PayU's merchant panel
client_secret:
type: string
example: 12f071174cb7eb79d4aac5bc2f07563f
description: Merchant's secret key. Can be found in PayU's merchant panel
securitySchemes:
Bearer:
type: http
scheme: bearer
Basic:
type: http
scheme: basic