Przelewy24 Recursion (doPayment) API

In order to register a recurring transaction, it is necessary to send transaction registration request first to /transaction/register endpoint. . For the transaction to be performed, the `“cardData”` object must be added in the transaction registration request. ```json { "cardData": { "means": { "card": { "pan": "1234123412341234", "expYear": "2027", "expMonth": "01", "clientName": "Name and surname", "securityCode": "123" } }, "transcationType": "recurring", "traceID": "" } } ``` Description of the specific parameters of the object: - the `"card"` object contains card data such as: - `"pan"` - 16-digit card number - `"expYear"` - card expiry year - `"expMonth"` - card expiry month - `"securityCode"` – CVV/CVC code - `"transactionType"` - takes the “recurring” value - `"traceID"` - initiating transaction reference number (required for recurring, if the following have been provided: card, schemeToken) Provided that all the parameters in the transaction registration request are correct, a token required for `transaction/doPayment` request is returned in response.

Operations 1

POST /api/v1/transaction/doPayment Transaction without JS/SDK #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/przelewy24-recursion-dopayment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API 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 Specification

przelewy24-recursion-dopayment-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  x-logo:
    url: getfile/przelewy24-logo_mini.png
    altText: LogoP24
  contact:
    name: Przelewy24 Support
    url: https://www.przelewy24.pl/support
  title: Przelewy24 REST API Documentation Recursion (doPayment) API
  description: '# Payment system


    Przelewy24 provides an authorisation and clearing system and provides payment services as a Domestic Payment Institution.'
  version: 1.0.0.
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: Recursion (doPayment)
  x-displayName: Recurrence
  description: In order to register a recurring transaction, it is necessary to send transaction registration request first to /transaction/register endpoint.
paths:
  /api/v1/transaction/doPayment:
    post:
      tags:
      - Recursion (doPayment)
      summary: Transaction without JS/SDK
      requestBody:
        description: In order to register a recurring transaction, it is necessary to send transaction registration request first to `transaction/register` endpoint, consistent with the parameters set out in <a href="#tag/Recursion-(doPayment)">Recursion</a> section.
        content:
          application/json:
            schema:
              properties:
                requestId:
                  type: string
                  description: RequestId must follow the UUIDv4 format
                token:
                  type: string
                  description: Transaction token returned from transaction registration request
              required:
              - requestId
              - token
              type: object
      responses:
        200:
          description: OK
          content:
            application/json:
              schema:
                properties:
                  token:
                    type: string
                    description: Transaction token
                  sessionId:
                    type: string
                    description: Unique transaction's sessionId
                  status:
                    type: string
                    description: 'Status of created transaction, possible: DONE'
                  data:
                    properties:
                      url:
                        type: string
                        description: URL redirecting to 3DS
                      type:
                        type: string
                        description: URL call method
                      payload:
                        type: array
                        description: Payload
                      headers:
                        properties:
                          content-type:
                            type: string
                            description: text/html; charset=UTF-8
                    type: object
                    description: If in the transaction registration request in the cardData object the transactionType parameter contains the value "recurring", then the object is empty. Otherwise, data such as a link with a redirection to 3DS verification will be passed in the data object.
                type: object
                required:
                - token
                - sessionId
                - status
        201:
          description: Created
          content:
            application/json:
              schema:
                properties:
                  token:
                    type: string
                    description: Transaction token
                  sessionId:
                    type: string
                    description: Unique transaction's sessionId
                  status:
                    type: string
                    description: 'Status of created transaction, possible: DONE'
                  data:
                    properties:
                      url:
                        type: string
                        description: URL redirecting to 3DS
                      type:
                        type: string
                        description: URL call method
                      payload:
                        type: array
                        description: Payload
                      headers:
                        properties:
                          content-type:
                            type: string
                            description: text/html; charset=UTF-8
                    type: object
                    description: If in the transaction registration request in the cardData object the transactionType parameter contains the value "recurring", then the object is empty. Otherwise, data such as a link with a redirection to 3DS verification will be passed in the data object.
                type: object
                required:
                - token
                - sessionId
                - status
        400:
          description: Invalid input data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidInputData'
        401:
          description: Not authorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedResponse'
      security:
      - basicAuth: []
      operationId: postApiV1TransactionDoPayment
      x-operation-id-source: derived
components:
  schemas:
    InvalidInputData:
      properties:
        error:
          type: string
          default: Invalid input data
          example: Invalid input data
        code:
          type: number
          default: 400
          example: 400
    UnauthorizedResponse:
      properties:
        error:
          type: string
          default: Incorrect authentication
          example: Incorrect authentication
        code:
          type: number
          default: 401
          example: 401
  securitySchemes:
    basicAuth:
      description: This is the default authentication method. User and secretId are available in P24 panel:<br/>- "User" it's the same value as posId,<br/>- secretId it's the samevalue as key for reports (API key).
      type: http
      scheme: basic
x-tagGroups:
- name: Transaction service
  tags:
  - Transaction service API
  - Notification
  - Calculating Sign
- name: Additional services
  tags:
  - Additional API functionality
  - RefundNotification
  - Additional services Additional Notifications
  - Payment Methods Use Cases
  - Additional services Mass Payments Transactions
- name: Card payment
  tags:
  - Card API
  - Card Notification
  - Pre-authorization
- name: BLIK
  tags:
  - BLIK Use Cases
  - BLIK API
  - BLIK Additional
  - Alias Update Notification
- name: Reports
  tags:
  - Report API
- name: Card payment 2.0
  tags:
  - Introduction
  - Google Pay
  - Apple Pay
  - Form initialization
  - Form initialization v2
  - Tokenization
  - Card payment flow
  - Recursion (doPayment)
  - Card API v2
  - Card notification
  - Mobile payment (Android)
  - Mobile payment (iOS)
- name: How to integrate installments?
  tags:
  - Buttons and banners
  - Widget
  - Simulator