Przelewy24 Ekspres P24 API API

The Ekspres P24 API API from Przelewy24 — 10 operation(s) for ekspres p24 api.

OpenAPI Specification

przelewy24-ekspres-p24-api-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  x-logo:
    url: getfile/przelewy24-logo_mini.png
    altText: LogoP24
  contact:
    name: Przelewy24 Support
    url: https://www.przelewy24.pl/support
  title: Ekspres Przelewy24 REST API Documentation Additional API functionality Ekspres P24 API API
  version: 1.0.6
  description: "\n\n\n# Ekspres Przelewy24\n\nPrzelewy24 provides an authorisation and clearing system and provides payment services as a Domestic Payment Institution. <br><br/>\n<b><b>Ekspres-Przelewy24</b> service allows to quickly and effortlessly send money between accounts from different banks.</b><br/><br/>\nBelow documentation describes the process of information exchange in the course of ordering a transfer via Ekspres Przelewy24 with the use of REST API.<br/><br/>\nIn order to be able to access Ekspres API Przelewy24, first you need to [create an account](https://ekspres.przelewy24.pl/kontakt/index) in Ekspres P24 Administration Panel.\n<br/>\n# Basic notions\nThe following notions will be used for describing the operation of Ekspres Przelewy24:<br/><br/> **WWW system** – access to Ekspres Przelewy24 in the WWW version through the following websites:<ul>\n    <li>[https://ekspres.przelewy24.pl](https://ekspres.przelewy24.pl) – production version,</li>\n    <li>[https://testekspres.przelewy24.pl](https://testekspres.przelewy24.pl) – sandbox version.</li></ul>\n**API** – access to Ekspres Przelewy24 via REST API. <br/> **Partner** – a person / entity owning the system and submitting transfer orders to Ekspres.<br/> **Client** – a person using Ekspres services (payer or recipient of payment from Ekspres).\n\n# Modes and transfer processing\nEkspres Przelewy24 offers 3 modes of transfer processing:<ul> <li><b>Wallet</b> - transfers are processed using the funds previously paid into the wallet,</li> <li><b>P24</b> i <b>P24mobile</b> - transfers are processed only after the client has made the payment in [przelewy24.pl](https://www.przelewy24.pl),</li> Each of these modes allows the client to monitor the progress of the transfer by providing them with a dedicated URL address (available upon transfer registration).\n\n## Transfer processing in Wallet\n<b>Wallet</b> is characterized by quick processing of transfers to the client. Thanks to the funds accrued in the wallet, it is possible to effect immediate processing of a transfer registered by the Partner.<br/><br/>\n\n<img src=\"getfile/eng_wallet.png\" alt=\"Transfer w trybie Wallet\" class=\"center smallImg\">\n\n\n## Transfer processing in P24 and P24mobile\n<b>P24</b> and <b>P24mobile</b> processes payments based on the funds paid in by the Client through [przelewy24.pl](https://www.przelewy24.pl). Using this mode, the partner registers the transfer in API and, subsequently, sends a payment link to the client (alternatively, the payment link may also be sent automatically via email). Once the transaction is paid by the client in [przelewy24.pl](https://www.przelewy24.pl), the transfer registered by the partner is sent for processing.<br/><br/>\n<b>NOTE: P24mobile is analogous to P24 in that it is designed to operate with a mobile library.</b><br/><br/>\n\n<img src=\"getfile/eng_p24_p24mobile.png\" alt=\"Transfer w trybie P24 i P24mobile\" class=\"center smallImg\">\n\n\n# Codes of responses and erros\n## HTTP response codes\nEkspres Przelewy24 REST API uses response codes in HTTP headers to communicate the result of a query, potential problems and errors. <br/><br/> An inventory of possible response codes and their meanings are explained in the appropriate subchapters describing the specific methods.<br/><br/> <b>Always take note of the response code in order to react adequately to potential problems idempotent replies, etc.</b><br/><br/>\n<b>Possible response codes for all methods:</b>\n\n  | Kod   |      Opis      |  Znaczenie |\n  |--------------|:--------------|:------------|\n  | 401  |   Authorization Required   | No access, check the key and the password, check if the key and the password are active and valid for this method. The code is also used to signal temporary failures. |\n  | 403 |  Forbidden  | No access to a given method. The API key and the password are correct. Contact our staff in order to get access.  |\n  | 404 | Not Found | Method not found, check the URL address called. |\n  | 405 | Method Not Allowed | The method used exists, but under a different http call. Check the calls for this method (GET/POST/etc.).|\n  | 415 | Unsupported Media Type | The „Content-Type” value used is not allowed or a required header is missing. Inventory of allowed values available at <a href=\"#section/General-structures-of-queries-and-responses/General-query-format\"><b>General query format</b></a>. |\n  | 500 | Internal Server Error | Server error, if the error recurs, contact our staff and provide the whole query processed, as well as your API key. |\n  | 503 | Service Unavailable | Service temporarily unavailable due to a failure or planned upgrade.   |\n\n\n## Error codes\nError codes appear in the output object of a query that ended with an error and, if it’s possible, indicate its cause. This allows to precisely establish the cause of the error and triggers an automatic reaction / error notification. <br/><br/>\nError codes are divided into the following groups:<ul> <li><b>1xxx</b> – input parameter validation error (the query contains an error),</li> <li><b>2xxx, 3xxx</b> – transfer registration error (the query is correct, but the transfer cannot be processed, e.g. due to insufficient funds),</b> <li><b>9xxx</b> – external services error (API failure caused by unavailability of a related service necessary to process the transfer, e.g. currency exchange),</li> <li><b>10000</b> – internal error (failure of Ekspres Przelewy24 REST API).</li></ul>\n<b>NOTE! When implementing API error service, in order to identify the error, rely solely on the codes, as the “description” parameter may change and constitutes additional information only!</b><br/><br/>\nThe table below presents error codes <b>input parameter validation:</b>\n\n  | Error code   |      Description      |\n  |--------------|:--------------|\n  | 1001  | The value of parameter <b>parameter_name</b> contains illicict characters |\n  | 1002  | Parameter <b>parameter_name</b> value must not be empty |\n  | 1003  | Passwords are not identical |\n  | 1004  | The password must consist of at least 8 characters and contain small and capital letters and digits |\n  | 1005  | Incorrect email address |\n  | 1006  | Incorrect postal code |\n  | 1007  | Incorrect country code |\n  | 1008  | Incorrect amount |\n  | 1009  | The <b>parameter</b> value submitted is not a correct integer |\n  | 1010  | Incorrect currency |\n  | 1011  | Incorrect account number |\n  | 1012  | Incorrect URL address |\n  | 1013  | Transaction type not serviced |\n  | 1014  | Incorrect field value |\n  | 1015  | Current transfer status prevents this operation, or incorrect transfer object |\n  | 1016  | Incorrect date format / incorrect date |\n  | 1017  | Incorrect query signature |\n  | 1018  | Parameter value too long |\n  | 1019  | IBAN number submitted has been blocked |\n\n<br/>The table below presents <b>transfer registration error codes:</b>\n\n  | Error code   |      Description   |\n  |--------------|:--------------|\n  |  2001\t| Bank unavailable |\n  |  2002 |\tInsufficient funds in wallet |\n  |  2003\t| Limit for a single transfer has been exceeded |\n  |  2004\t|\tDaily limit on the amount of transfers paid has been exceeded |\n  |  2005\t| Transfer ID not recognised |\n  |  2006\t| Refund amount provided exceeds the transfer value available |\n  |  2007\t| Access denied |\n  |  2008\t| Incorrect transfer ID |\n  |  2009\t| Transfer limit exceeded |\n  |  2010\t| Transfer already returned in P24 mode |\n  |  3000\t| Incorrect ID query |\n  |  3001\t| Unknown sessionId in P24 mode |\n\n<br/>The table below presents <b>error codes for external services:</b>\n\n  | Error code   |      Description      |\n  |--------------|:--------------|\n  | 9001 |\tTransfer processing error. Contact the customer service department and provide the query ID |\n  | 9002 |\tCurrency exchange error. Please, try again |\n\n<br/>The table below presents the <b>remaining error codes:</b>\n\n  | Error code   |      Description      |\n  |--------------|:--------------|\n  | 10000 |\tInternal error. Please, contact the customer service department and provide the query ID |\n\n\n\n# General structures of queries and responses\n## General query format\n\n  API queries may be processed using any library that allows HTTPS protocol-based communication. Allowed Content-Type values:<ul>\n  <li><b>application/json</b> – queries sent in JSON format,</li>\n  <li><b>application/x-www-form-urlencoded</b> – queries sent as POST (urlencoded).</li></ul>\n\n  <b>Required coding to UTF-8.</b><br/>\n\n  Sample PHP code with the use of cURL\n  ```php\n      <?php\n      $process = curl_init('https://endpoint/ekspres/v1/balance');\n      // Content-Type header required\n      curl_setopt(\n        $process,\n        CURLOPT_HTTPHEADER,\n        array('Content-Type: application/json')\n      );\n      // Basic Auth authentication\n      curl_setopt($process, CURLOPT_USERPWD, 'api-key' . \":\" . 'api-pass');\n      curl_setopt($process, CURLOPT_RETURNTRANSFER, true);\n      $return = json_decode(curl_exec($process));\n      echo json_encode($return, JSON_PRETTY_PRINT) . \"n\";\n      curl_close($process);\n  ```\n\n## General response format\nA correct method call in Ekspres Przelewy24 REST API will generate a response in the form of a JSON object, in the format dependent on the method called.<br/> <p style=\"border:1.5px; border-style:dashed; border-color:#FF0000; padding: 1em;\"> <b>NOTE!</b><br/><br/> All the responses returned by API are <b>UTF-8-coded JSON objects without “slash” sign filters and unicode characters!</b><br/><br/> All the responses are returned using the following method:<br/> json_encode($response, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES)<br/><br/> For more information see [PHP documentation](https://www.php.net/manual/en/json.constants.php). </p><br/>\nIn the case of some errors, e.g. internal error 500 or authorisation error 401, the same http code will be returned without additional information in the body. These are the cases when the system does not have any more information on the error or does not want to make it available (for instance, due to lack of authorisation). <br/><br/>\n\n When most errors are generated, GeneralErrorObject is returned (in addition to the relevant http code) with additional details:<br/>\n\n  <b>GeneralErrorObject:</b>\n\n  | Field name   |      Type    |  Description |\n  |--------------|:--------------:|:------------|\n  | code  |     int   | General <a href=\"#section/Codes-of-responses-and-erros/Error-codes\"><b>error code</b></a>  |\n  | description |  string  | Error details   |\n\n  <p style=\"color:darkblue; font-size:17px\"><b>Przykład odpowiedzi z obiektem GeneralErrorObject:</b></p>\n\n    ```html\n        HTTP/1.1 400 Bad Request\n          Content-Type: application/json\n\n          {\n            „error”: {\n              „code”: 1011,\n              „description”: „Given IBAN value ”iban” is not valid”\n            }\n          }\n    ```\n\n\n# Environments\n## Production environment\nEvery request is differentiated by its own unique request URL. This way Ekspres P24 knows which API-function you want to access. Combined with the base URL for either the production- or test-environment, you will get the complete API-URL.\n\nBase URL production system:<br/> https://secure.przelewy24.pl/express/v1\n\n## Test environment\nDuring implementation of the mechanisms in merchant’s system, it is recommended to use test environment. Test environment allows to reproduce system functionalities without making actual payments. <br><br>\nTest environment endpoint:<br> https://sandbox.przelewy24.pl/express/v1 <br><br>\n**<u>The test version does not effect transfers and requires separate login keys.</u>**\n\n# IP server addresses\nWe recommend script protection against suspicious calls using address filtering for incoming connections. IP server ranges for the P24 servers: <br><br> <font class = \"right\"><b>5.252.202.255 , 5.252.202.254</b></font><br> <font class = \"right\"><b>20.215.81.124</b></font><br> <font class = \"right\"><b>193.178.213.0/24</b></font><br> <font class = \"right\"><b>91.220.177.0/24</b></font><br> <font class = \"right\"><b>20.215.183.48/28</b></font><br> <font class = \"right\"><b>134.112.88.8/29</b></font><br>\n\n\n# API Access\nAuthentication is effected with the Basic Auth mechanism, which uses a REST API key (as a login) and the password assigned to it. Generating the API key is possible upon logging on to one’s account in the  <a href=\"#section/Basic-notions\"><b>WWW System</b></a> (left-hand menu, tab “API Users” -> “REST User List”). A single user may possess a few API access keys.\n# Authentication\n<!-- Redoc-Inject: <security-definitions> -->\n"
servers:
- url: https://sandbox.przelewy24.pl
  description: Sandbox server (uses test data)
- url: https://secure.przelewy24.pl
  description: Production server (uses live data)
tags:
- name: Ekspres P24 API
paths:
  /express/v1/access/check:
    get:
      tags:
      - Ekspres P24 API
      summary: Access Check
      description: '<br/>The method is used to test access to API. It allows you to verify if the key and the password are active and working correctly.<br/><br/>Object returned: <b>NONE, empty response</b>'
      responses:
        '200':
          description: OK - Access granted, API working properly
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
        '403':
          description: Forbidden - Access active, but you are not authorised to use this method
      security:
      - basicAuth: []
  /express/v1/user/balance:
    get:
      tags:
      - Ekspres P24 API
      summary: Current user's balance
      description: <br/>The method allows to download the current balance of the user’s wallets.<br/>
      responses:
        '200':
          description: OK - JSON object returned with account balance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserBalanceResponse200Body'
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
      security:
      - basicAuth: []
  /express/v1/bank/availability:
    get:
      tags:
      - Ekspres P24 API
      summary: Banks' availability
      description: The method returns declared by banks availability on specific weekdays and public holidays. The information allows you to find out at what time a given transfer may be processed.
      responses:
        '200':
          description: OK - JSON object returned with a list of availability of banks
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BankAvailabilityObjectResponseBody'
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
      security:
      - basicAuth: []
  /express/v1/payment/methods:
    get:
      description: The method returns payment methods available in przelewy24.pl. The information returned proves useful for ordering transfers in  <a href="#section/Modes-and-transfer-processing/Transfer-processing-in-P24-and-P24mobile"><b>p24 and p24mobile</b></a>. We can make the client use a specific payment method after they are redirected to przelewy24.pl in order to pay for the transaction. <br><br><b>It may also return an empty result if no method is available at the moment.</b>
      tags:
      - Ekspres P24 API
      summary: Payment methods
      responses:
        '200':
          description: OK - JSON object returned with a list of payment methods available at przelewy24.pl
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodObjectResponseBody'
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
      security:
      - basicAuth: []
  /express/v1/payment/refund:
    put:
      description: This  method  refunds  payment  of  transfers  in <a href="#section/Modes-and-transfer-processing/Transfer-processing-in-P24-and-P24mobile"><b>p24 i p24mobile</b></a> type that were rejected by bank or finished with errors and returned to wallet. Funds for this operation are taken from Ekspres user wallet and refund request is sent to Przelewy24 service for refunding money directly to client.<br/><br/>The progress of refunding a transfer can be watched through transfer <a href="#tag/Notifications-on-transfer-status"><b>notifications</b></a>.
      tags:
      - Ekspres P24 API
      summary: Refund
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PutPaymentRefundBody'
      responses:
        '200':
          description: OK - Refund for transfer has been accepted for processing in Przelewy24 service
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PutPaymentRefundResponse'
        '400':
          description: Bad Request - Incorrect parameter format, the error object returned should include a description of the field in which the problem occurred
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
        '404':
          description: Not Found - No transfer was found, this will be also returned for transfers that aren’t p24/p24mobile type
        '409':
          description: Conflict - Transfer is in status that prevents its refunding
      security:
      - basicAuth: []
  /express/v1/transfer/request:
    post:
      tags:
      - Ekspres P24 API
      summary: Transfer request
      description: This method is responsible for sending transfers. The query and the response look similar for each type of transfer, yet the results of the call will be different for each type.<br><ul><li><a href="#section/Modes-and-transfer-processing/Transfer-processing-in-Wallet"><b>wallet</b></a>  – concludes with <b>an immediate transfer of money</b> upon a correct call, provided there are sufficient funds in the account,</li><li><a href="#section/Modes-and-transfer-processing/Transfer-processing-in-P24-and-P24mobile"><b>p24 and p24mobile</b></a> – concludes with transaction registration in przelewy24.pl, a link to which will be generated. Once the transaction is paid and verified positively, the transfer will be sent to the entity whose details are indicated in the query,</li><p style="border:1.5px;border-style:solid;border-color:#FF0000;padding:1em;"><font size=3px><b>Note!</b><br/>/v1/transfer/request method is idempotent.<br/> It means that if the method is called for the first time and a positive result is obtained, a new transfer will be created. In this case, the http code returned is <b>201 Created</b>.<br/> If <b>the same query is called again</b>, the transfer <b>will not be repeated</b> and the same result as in the case of the original transfer will be generated. In this case, the http code returned is <b>200 OK</b>. It is important to note that <b>only code 201 Created</b> means that <b>the transfer has been sent / registered</b>. Code 200 OK means that such a transfer already exists and the system only returns <b>the result of the original call.</b><br/><br/>The mechanism serves to prevent accidental duplication of transfers. If the same transfer is called twice, the money will be sent only once. In case the API connection is interrupted (e.g. Timeout) while the method is being called, it can be repeated without worrying about the possibility of generating a duplicate transfer. At the same time, it is possible to check if the original query was successful and to obtain a link.<br/><br/>The mechanism is based on the ‘id’ parameter. In case the parameter is changed, the query is treated as an <b>entirely new transfer</b>. That is why one must still exercise caution so as to avoid creating a duplicate. </font></p>
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferRequestPostBody'
      responses:
        '200':
          description: OK - The result returned is idempotent, the transfer has already been registered, no new transfer has been registered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequestResultObjectBody'
        '201':
          description: Created - New transfer has been accepted and registered
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequestResultObjectBody'
        '202':
          description: Accepted - The transfer is being processed (occurs when the same request is called for again before an idempotent response is generated)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequestResultObjectBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorObjectResponseBody'
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
      security:
      - basicAuth: []
  /express/v1/transfer/basket:
    post:
      tags:
      - Ekspres P24 API
      summary: Multiple transfers at once (basket)
      description: The method allows processing numerous transfers with one payment through przelewy24.pl or with a payment card.<br/>The method operates in an analogous manner to <a href="#tag/Ekspres-P24-API/paths/~1express~1v1~1transfer~1request/post"><b>/v1/transfer/request</b></a>, all the information regarding response codes and values returned may be found there. The description comprises only the elements that differ with respect to the call.<br/><br/><font color="red"><b>Note!</b><br/>/v1/transfer/basket method <b>is also idempotent!</b><br/>The operation details are analogous to <a href="#tag/Ekspres-P24-API/paths/~1express~1v1~1transfer~1request/post"><b>/v1/transfer/request</b></a>.</font>
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransferBasketPostBody'
      responses:
        '200':
          description: OK - The result returned is idempotent, the transfer has already been registered, no new transfer has been registered.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferBasketResultBody'
        '201':
          description: Created - New transfer has been accepted and registered.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferBasketResultBody'
        '202':
          description: Accepted - he transfer is being processed (occurs when the same request is called for again before an idempotent response is generated)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferBasketResultBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorObjectResponseBody'
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
      security:
      - basicAuth: []
  /express/v1/transfer/history:
    get:
      tags:
      - Ekspres P24 API
      summary: Transfers' history
      description: The method allows to download the history of transfers from the account within a specified period of time. <b> Warning! Do not use this method to verify whether a transfer was successful.</b> In order to monitor the transfer status use <a href="#tag/Notifications-on-transfer-status"><b>Notifications</b></a>.</b><br/>.
      parameters:
      - name: limit
        in: path
        description: Limit of transfers downloaded in a single query. Default setting - 10.
        required: false
        schema:
          type: integer
          default: 10
      - name: dateFrom
        in: path
        description: 'The date FROM which the transfer history will be downloaded.<br/>Format: „YYYY-mm-dd”'
        required: false
        schema:
          type: string
          maxLength: 10
      - name: dateTo
        in: path
        description: 'The date TO which the transfer history will be downloaded.<br/> Format: „YYYY-mm-dd”'
        required: false
        schema:
          type: string
          maxLength: 10
      responses:
        '200':
          description: OK -Table of JSON objects returned with history results
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferHistory200ResponseBody'
        '400':
          description: Bad Request - Incorrect parameter format, the error object returned should include a description of the field in which the problem occurred
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorObjectResponseBody'
        '401':
          description: Authorization Required - No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
      security:
      - basicAuth: []
  /express/v1/transfer/p24/refund:
    post:
      tags:
      - Ekspres P24 API
      summary: Refund (possible overrefund)
      description: This method generates new transfer for an existing transaction in Przelewy24 system. New transfer is created exactly the  same as in method <a href="#tag/Ekspres-P24-API/paths/~1express~1v1~1transfer~1request/post"><b>/v1/transfer/request</b></a>, and its data is pulled from transaction in Przelewy24 system. <b>Refunds are always created as </b> <a href="#section/Modes-and-transfer-processing/Transfer-processing-in-Wallet"><b>Wallet  type</b></a> – the amount is pulled from user in Ekspres system.<br/><br/> As for default method does not allow creating a refund transfer for transactions that were previously refunded in Przelewy24 system. Optionally you can force such refund with overrefund parameter. <p style="border:1.5px;border-style:solid;border-color:#FF0000;padding:1em;"><b><font size=4px>Warning! Refunds in foreign currencies are evaluated and refunded in PLN!</font></b></p><p style="border:1.5px;border-style:solid;border-color:#FF0000;padding:1em;"><b><font size=4px>NOTE!</b><br/><br/>Method /v1/transfer/p24/refund is idempotent! <br/><br/>The operation details are analogous to <a href="#tag/Ekspres-P24-API/paths/~1express~1v1~1transfer~1request/post"><b>/v1/transfer/request</b></a></font></b></p>
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostTransferRefundBody'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequestResultObjectBody'
        '201':
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequestResultObjectBody'
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransferRequestResultObjectBody'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralErrorObjectResponseBody'
        '401':
          description: Authorization Required -  No access, check the key and the password, check if  the key and the password are active and have authorisation to use this method
      security:
      - basicAuth: []
  /express/v1/bank/check:
    get:
      description: The method allows you to check whether the bank that serves the given IBAN by default is currently active.</br><p style="border:1.5px;border-style:solid;border-color:#FF0000;padding:1em;"><b><font size=4px>NOTE!</b><br/><br/>Even if the method of returning that the bank is an existing system, re-recover the information for a given user, which will direct the transfer to another bank.<br/>
      tags:
      - Ekspres P24 API
      summary: Verification of the bank's activity
      parameters:
      - name: iban
        in: path
        description: IBAN number
        required: true
        schema:
          type: string
          maxLength: 40
          default: PL0000000000000000000000000000
      responses:
        '200':
          description: The returned JSON object with the default bank activity parameter for the given IBAN
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetBankCheck'
        '400':
          description: The provided IBAN is incorrect or parameters were provided incorrected
      security:
      - basicAuth: []
components:
  schemas:
    TransferObjectBody:
      properties:
        iban:
          type: string
          maxLength: 40
          description: Recipient’s IBAN no. <b>with country prefix</b>
        recipient:
          description: Object representing recipient’s details
          allOf:
          - $ref: '#/components/schemas/PersonObjectBody'
        sender:
          description: Object representing sender’s details
          allOf:
          - $ref: '#/components/schemas/PersonObjectBody'
        label:
          type: string
          description: Additional description in the transfer title – only for p24, p24mobile modes
          maxLength: 20
        title:
          type: string
          maxLength: 150
          description: Transaction title
        amountOut:
          type: integer
          description: Amount of transaction in the smallest denomination<br/>1000 = 10.00
        currencyOut:
          type: string
          maxLength: 3
          description: Transfer currency [ISO 4217 code](https://en.wikipedia.org/wiki/ISO_4217#Active_codes)
        externalParam:
          type: string
          maxLength: 100
          description: <b>We recommend that additional, individual transfer ids are used with this parameter, as it significantly simplifies transaction identification in <a href="#tag/Notifications-on-transfer-status"><b>notifications</b></a>.</b><br/> The parameter is defined at the user’s discretion and is generated when notifications are sent.<br/>This parameter may be the same as the “id” parameter.
        confirmation:
          type: boolean
          default: false
          description: Defines if this transfer should get generated confirmation from outgoing bank in PDF format.<br/><br/> <b>Warning!  This  feature  of  generating PDF confirmations from outgoing bank is required to be consulted and enabled with integrations support before use! By default using this parameter will do nothing instead!
        confirmationFilename:
          type: string
          maxLength: 100
          example: string
          description: The name of the generated confirmation from the bank (PDF file).<br/><br/> If the `confirmationFilename` parameter isn't sent in request and `confirmation` parametr is set to 'true' then the default file name takes the value from the formula "EX_timestamp_idtransfer_iduser".
      requir

# --- truncated at 32 KB (50 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/przelewy24/refs/heads/main/openapi/przelewy24-ekspres-p24-api-api-openapi.yml