{
  "openapi": "3.0.3",
  "info": {
    "version": "1.0.0",
    "title": "paymentic.com",
    "contact": {
      "email": "kontakt@paymentic.com",
      "url": "https://paymentic.com/kontakt"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "x-logo": {
      "url": "https://static.paymentic.com/logo/logo.svg",
      "altText": "Paymentic"
    }
  },
  "tags": [
    {
      "name": "payment-api-transactions",
      "x-displayName": "Transakcje"
    },
    {
      "name": "payment-api-channels",
      "x-displayName": "Kanały płatności"
    },
    {
      "name": "payment-blik",
      "x-displayName": "BLIK"
    },
    {
      "name": "payment-notifications",
      "x-displayName": "Notyfikacje"
    },
    {
      "name": "directbilling-introduction",
      "x-displayName": "Wprowadzenie",
      "description": "# Notyfikacje\n\nPrzykładowy request przesłany do strony partnera\n```text\nGET /yourpath HTTP/1.1\nHost: yourdomain.com\nUser-Agent: Paymentic/1.0\nContent-Type: application/json\nContent-Length: 201\nX-Paymentic-Notification-Id: 01J5SXAG3D5MZXCZQ4P567ECQ8\nX-Paymentic-Time: 1724226165\nX-Paymentic-Signature: 8XYkwtl7wbjf74DUPFab0GP6/us4u91xHectfnxsqr0GQ9aU8Wj/l/g7BSyuwilQ2oVY1Yppnci5/z4CaRPtWQ==\n\n{\"transactionId\":\"CR6-75T-KVY-DAV4\",\"pointId\":\"e99ed63d\",\"status\":\"PENDING\",\"amount\":14.24,\"currency\":\"PLN\",\"commission\":null,\"custom\":null,\"msisdn\":\"48987654321\",\"mccmnc\":null,\"isTest\":false}\n```\n\n### Ponawianie notyfikacji\nPróba \n\n# Sygnatura notyfikacji\n\nSygnatura notyfikacji może zostać obliczona za pomocą HMAC SHA512.<br/>\n<br/>\n### Struktura do generowania sygnatury\n```text\n1.0|{\"transactionId\":\"CR6-75T-KVY-DAV4\"}|01J5SXAG3D5MZXCZQ4P567ECQ8|1724226165\n```\n\nKlucz do sygnatury używany do wygenerowania przykładowej sygnatury\n`d3d2503c-478e-405d-b453-33e63b1ce962`\n\n### Przykładowa syngatura z danych podanych wyżej\n```text\nZKpOXsLkxz95TL5MLK4owl6WZ66489XDR6M9BayCmH2u4zbzeePho/FsHoxlgvwO2rEZ5njJ0puxgLiCQYoi2w==\n```\n\n### Przykłady jak wygenerować sygnaturę w różnych językach\n\n#### PHP\n```php\n<?php\n$signatureKey = 'd3d2503c-478e-405d-b453-33e63b1ce962';\necho base64_encode(hash_hmac('sha512', '1.0|{\"transactionId\":\"CR6-75T-KVY-DAV4\"}|01J5SXAG3D5MZXCZQ4P567ECQ8|1724226165', $signatureKey, true));\n```\n\n### Przetestuj generowanie sygnatury\n------------------------------------\n\n[➡️ Otwórz interaktywny generator sygnatury](pathname:///signature.html)\n"
    },
    {
      "name": "directbilling-api-transactions",
      "x-displayName": "Transakcje"
    },
    {
      "name": "directbilling-refunds",
      "x-displayName": "Zwroty",
      "description": "API DirectBilling pozwala zwracać całość pobranej kwoty za daną transakcję bezpośrednio na konto użytkownika. Zworty realizowane są przez operatorów.\nPo utworzeniu zwrotu otrzyma on status `CREATED` następnie musi zostać zaakceptowany przez Paymentic\n\nW przypadku gdy spróbujemy zlecić zwrot dla starszej niż 90 dni, otrzymamy response z kodem 400 i `errorCode` `TRANSACTION_TOO_OLD`\n"
    }
  ],
  "x-tagGroups": [
    {
      "name": "Płatności online",
      "tags": [
        "payment-introduction",
        "payment-api-transactions",
        "payment-api-channels",
        "payment-blik",
        "payment-notifications"
      ]
    },
    {
      "name": "DirectBilling",
      "tags": [
        "directbilling-introduction",
        "directbilling-api-transactions",
        "directbilling-refunds"
      ]
    }
  ],
  "servers": [
    {
      "url": "https://api.paymentic.com/v1"
    },
    {
      "url": "https://api.sandbox.paymentic.com/v1"
    }
  ],
  "paths": {
    "/payment/points/{pointId}/transactions": {
      "get": {
        "security": [
          {
            "bearerToken": [
              "payment.transactions"
            ]
          }
        ],
        "summary": "Lista transakcji",
        "operationId": "paymentTransactionList",
        "description": "",
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "CLI",
            "source": "curl --location 'https://api.paymentic.com/v1/payment/points/:pointId/transactions' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Bearer {{bearerToken}}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => 'https://api.paymentic.com/v1/payment/points/:pointId/transactions',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => '',\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 0,\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_HTTPHEADER => array(\n        'Content-Type: application/json',\n        'Authorization: Bearer {{bearerToken}}'\n    ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
          },
          {
            "lang": "Java",
            "label": "Java",
            "source": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"\");\nRequest request = new Request.Builder()\n  .url(\"https://api.paymentic.com/v1/payment/points/:pointId/transactions\")\n  .method(\"GET\", body)\n  .addHeader(\"Content-Type\", \"application/json\")\n  .addHeader(\"Authorization\", \"Bearer {{bearerToken}}\")\n  .build();\nResponse response = client.newCall(request).execute();"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import http.client\nimport json\n\nconn = http.client.HTTPSConnection(\"api.paymentic.com\")\npayload = ''\nheaders = {\n  'Content-Type': 'application/json',\n  'Authorization': 'Bearer {{bearerToken}}'\n}\nconn.request(\"GET\", \"/v1/payment/points/:pointId/transactions\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))"
          }
        ],
        "tags": [
          "payment-api-transactions"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/paymentTransactionsListResponse"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableContent"
          }
        }
      },
      "post": {
        "security": [
          {
            "bearerToken": [
              "payment.transactions.create"
            ]
          }
        ],
        "summary": "Generowanie transakcji",
        "operationId": "paymentTransactionCreate",
        "description": "",
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "CLI",
            "source": "curl --location 'https://api.paymentic.com/v1/payment/points/:pointId/transactions' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Bearer {{bearerToken}}' \\\n--data '{\n    \"amount\": 12.24,\n    \"title\": \"Doładowanie smoczych monet\"\n}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => 'https://api.paymentic.com/v1/payment/points/:pointId/transactions',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => '',\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 0,\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_POSTFIELDS =>'{\n    \"amount\": 12.24,\n    \"title\": \"Doładowanie smoczych monet\"\n}',\n    CURLOPT_HTTPHEADER => array(\n        'Content-Type: application/json',\n        'Authorization: Bearer {{bearerToken}}'\n    ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
          },
          {
            "lang": "Java",
            "label": "Java",
            "source": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"amount\\\":12.24,\\\"title\\\":\\\"Doładowanie smoczych monet\\\"}\");\nRequest request = new Request.Builder()\n  .url(\"https://api.paymentic.com/v1/payment/points/:pointId/transactions\")\n  .method(\"POST\", body)\n  .addHeader(\"Content-Type\", \"application/json\")\n  .addHeader(\"Authorization\", \"Bearer {{bearerToken}}\")\n  .build();\nResponse response = client.newCall(request).execute();"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import http.client\nimport json\n\nconn = http.client.HTTPSConnection(\"api.paymentic.com\")\npayload = json.dumps({\n  \"amount\": 12.24,\n  \"title\": \"Doładowanie smoczych monet\"\n})\nheaders = {\n  'Content-Type': 'application/json',\n  'Authorization': 'Bearer {{bearerToken}}'\n}\nconn.request(\"POST\", \"/v1/payment/points/:pointId/transactions\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))"
          }
        ],
        "tags": [
          "payment-api-transactions"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/paymentCreateTransactionRequest"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/paymentTransactionCreatedResponse"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableContent"
          }
        }
      }
    },
    "/payment/points/{pointId}/transactions/{transactionId}": {
      "get": {
        "security": [
          {
            "bearerToken": [
              "payment.transactions.show"
            ]
          }
        ],
        "summary": "Szczegóły transakcji",
        "operationId": "paymentGetTransaction",
        "description": "",
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "CLI",
            "source": "curl --location 'https://api.paymentic.com/v1/payment/points/:pointId/transactions/:transactionId' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Bearer {{bearerToken}}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => 'https://api.paymentic.com/v1/payment/points/:pointId/transactions/:transactionId',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => '',\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 0,\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_HTTPHEADER => array(\n        'Content-Type: application/json',\n        'Authorization: Bearer {{bearerToken}}'\n    ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
          },
          {
            "lang": "Java",
            "label": "Java",
            "source": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"\");\nRequest request = new Request.Builder()\n  .url(\"https://api.paymentic.com/v1/payment/points/:pointId/transactions/:transactionId\")\n  .method(\"GET\", body)\n  .addHeader(\"Content-Type\", \"application/json\")\n  .addHeader(\"Authorization\", \"Bearer {{bearerToken}}\")\n  .build();\nResponse response = client.newCall(request).execute();"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import http.client\nimport json\n\nconn = http.client.HTTPSConnection(\"api.paymentic.com\")\npayload = ''\nheaders = {\n  'Content-Type': 'application/json',\n  'Authorization': 'Bearer {{bearerToken}}'\n}\nconn.request(\"GET\", \"/v1/payment/points/:pointId/transactions/:transactionId\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))"
          }
        ],
        "tags": [
          "payment-api-transactions"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          },
          {
            "in": "path",
            "name": "transactionId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/transactionId"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/paymentTransactionResponse"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/payment/points/{pointId}/transactions/{transactionId}/blik": {
      "patch": {
        "security": [
          {
            "bearerToken": [
              "payment.transactions.blik"
            ]
          }
        ],
        "summary": "Autoryzacja płatności",
        "operationId": "paymentTransactionBlik",
        "description": "",
        "tags": [
          "payment-blik"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          },
          {
            "in": "path",
            "name": "transactionId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/transactionId"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/paymentBlikRequest"
        },
        "responses": {
          "202": {
            "$ref": "#/components/responses/paymentBlikResponse"
          },
          "400": {
            "$ref": "#/components/responses/paymentBlikBadRequestResponse"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableContent"
          }
        }
      }
    },
    "/payment/points/{pointId}/channels": {
      "get": {
        "security": [
          {
            "bearerToken": [
              "payment.channels"
            ]
          }
        ],
        "summary": "Pobieranie listy kanałów",
        "operationId": "paymentChannelsGet",
        "description": "",
        "tags": [
          "payment-api-channels"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/paymentChannelsResponse"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableContent"
          }
        }
      }
    },
    "/directbilling/points/{pointId}/transactions": {
      "post": {
        "security": [
          {
            "bearerToken": [
              "directbilling.transactions.create"
            ]
          }
        ],
        "summary": "Generowanie transakcji",
        "operationId": "directbillingCreateTransaction",
        "description": "",
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "CLI",
            "source": "curl -L -X POST 'https://api.paymentic.com/v1/directbilling/:pointId/transactions' \\\n-H 'Accept: application/json' \\\n-H 'Content-Type: application/json' \\\n-H 'Authorization: Bearer {{bearerToken}}' \\\n-d '{\n    \"amount\": 12.24,\n    \"title\": \"Doładowanie smoczych monet\",\n    \"description\": \"Gracz doładowuje 30 smocznych monet na serwerze gry\",\n    \"custom\": \"6d492b3a-2d5e-4fd2-a7b2-5087204f6d6d\"\n}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => 'https://api.paymentic.com/v1/directbilling/:pointId/transactions',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => '',\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 0,\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_POSTFIELDS =>'{\n    \"amount\": 12.24,\n    \"title\": \"Doładowanie smoczych monet\",\n    \"description\": \"Gracz doładowuje 30 smocznych monet na serwerze gry\",\n    \"custom\": \"6d492b3a-2d5e-4fd2-a7b2-5087204f6d6d\"\n}',\n    CURLOPT_HTTPHEADER => array(\n        'Content-Type: application/json',\n        'Authorization: Bearer {{bearerToken}}'\n    ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
          },
          {
            "lang": "Java",
            "label": "Java",
            "source": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\r\\n    \\\"amount\\\": 12.24,\\r\\n    \\\"title\\\": \\\"Doładowanie smoczych monet\\\",\\r\\n    \\\"description\\\": \\\"Gracz doładowuje 30 smocznych monet na serwerze gry\\\",\\r\\n    \\\"custom\\\": \\\"6d492b3a-2d5e-4fd2-a7b2-5087204f6d6d\\\"\\r\\n}\");\nRequest request = new Request.Builder()\n  .url(\"https://api.paymentic.com/v1/directbilling/:pointId/transactions\")\n  .method(\"POST\", body)\n  .addHeader(\"Content-Type\", \"application/json\")\n  .addHeader(\"Authorization\", \"Bearer {{bearerToken}}\")\n  .build();\nResponse response = client.newCall(request).execute();"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import http.client\nimport json\n\nconn = http.client.HTTPSConnection(\"api.paymentic.com\")\npayload = json.dumps({\n  \"amount\": 12.24,\n  \"title\": \"Doładowanie smoczych monet\",\n  \"description\": \"Gracz doładowuje 30 smocznych monet na serwerze gry\",\n  \"custom\": \"6d492b3a-2d5e-4fd2-a7b2-5087204f6d6d\"\n})\nheaders = {\n  'Content-Type': 'application/json',\n  'Authorization': 'Bearer {{bearerToken}}'\n}\nconn.request(\"POST\", \"/v1/directbilling/:pointId/transactions\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))"
          }
        ],
        "tags": [
          "directbilling-api-transactions"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/directbillingCreateTransactionRequest"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/directbillingTransactionCreatedResponse"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableContent"
          }
        }
      }
    },
    "/directbilling/points/{pointId}/transactions/{transactionId}": {
      "get": {
        "security": [
          {
            "bearerToken": [
              "directbilling.transactions.show"
            ]
          }
        ],
        "summary": "Pobieranie informacji o transakcji",
        "operationId": "directbillingGetTransaction",
        "description": "",
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "CLI",
            "source": "curl -L -X GET 'https://api.paymentic.com/v1/directbilling/:pointId/transactions/:transactionId' \\\n-H 'Accept: application/json' \\\n-H 'Authorization: Bearer {{bearerToken}}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => 'https://api.paymentic.com/v1/directbilling/:pointId/transactions/:transactionId',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => '',\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 0,\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => 'GET',\n    CURLOPT_HTTPHEADER => array(\n        'Accept: application/json',\n        'Authorization: Bearer {{bearerToken}}'\n    ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
          },
          {
            "lang": "Java",
            "label": "Java",
            "source": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"text/plain\");\nRequestBody body = RequestBody.create(mediaType, \"\");\nRequest request = new Request.Builder()\n  .url(\"https://api.paymentic.com/v1/directbilling/:pointId/transactions/:transactionId\")\n  .method(\"GET\", body)\n  .addHeader(\"Accept\", \"application/json\")\n  .addHeader(\"Authorization\", \"Bearer {{bearerToken}}\")\n  .build();\nResponse response = client.newCall(request).execute();"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import http.client\n\nconn = http.client.HTTPSConnection(\"api.paymentic.com\")\npayload = ''\nheaders = {\n  'Accept': 'application/json',\n  'Authorization': 'Bearer {{bearerToken}}'\n}\nconn.request(\"GET\", \"/v1/directbilling/:pointId/transactions/:transactionId\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))"
          }
        ],
        "tags": [
          "directbilling-api-transactions"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          },
          {
            "in": "path",
            "name": "transactionId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/schemas-transactionId"
            }
          }
        ],
        "responses": {
          "200": {
            "$ref": "#/components/responses/directbillingTransactionResponse"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    },
    "/directbilling/points/{pointId}/transactions/{transactionId}/refunds": {
      "post": {
        "security": [
          {
            "bearerToken": [
              "directbilling.transactions.refunds"
            ]
          }
        ],
        "summary": "Utworzenie zwrotu",
        "operationId": "directbillingTransactionCreateRefund",
        "description": "",
        "x-codeSamples": [
          {
            "lang": "cURL",
            "label": "CLI",
            "source": "curl -L -X POST 'https://api.paymentic.com/v1/directbilling/:pointId/transactions/:transactionId/refunds' \\\n-H 'Accept: application/json' \\\n-H 'Content-Type: application/json' \\\n-H 'Authorization: Bearer {{bearerToken}}' \\\n-d '{\n    \"msisdn\": \"48987654321\",\n    \"reason\": \"RMA\"\n}'"
          },
          {
            "lang": "PHP",
            "label": "PHP",
            "source": "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, array(\n    CURLOPT_URL => 'https://api.paymentic.com/v1/directbilling/:pointId/transactions/:transactionId/refunds',\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_ENCODING => '',\n    CURLOPT_MAXREDIRS => 10,\n    CURLOPT_TIMEOUT => 0,\n    CURLOPT_FOLLOWLOCATION => true,\n    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n    CURLOPT_CUSTOMREQUEST => 'POST',\n    CURLOPT_POSTFIELDS =>'{\n    \"msisdn\": \"48987654321\",\n    \"reason\": \"RMA\"\n}',\n    CURLOPT_HTTPHEADER => array(\n        'Accept: application/json',\n        'Content-Type: application/json',\n        'Authorization: Bearer {{bearerToken}}'\n    ),\n));\n\n$response = curl_exec($curl);\n\ncurl_close($curl);\necho $response;\n"
          },
          {
            "lang": "Java",
            "label": "Java",
            "source": "OkHttpClient client = new OkHttpClient().newBuilder()\n  .build();\nMediaType mediaType = MediaType.parse(\"application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\r\\n    \\\"msisdn\\\": \\\"48987654321\\\",\\r\\n    \\\"reason\\\": \\\"RMA\\\"\\r\\n}\");\nRequest request = new Request.Builder()\n  .url(\"https://api.paymentic.com/v1/directbilling/:pointId/transactions/:transactionId/refunds\")\n  .method(\"POST\", body)\n  .addHeader(\"Accept\", \"application/json\")\n  .addHeader(\"Content-Type\", \"application/json\")\n  .addHeader(\"Authorization\", \"Bearer {{bearerToken}}\")\n  .build();\nResponse response = client.newCall(request).execute();"
          },
          {
            "lang": "Python",
            "label": "Python",
            "source": "import http.client\nimport json\n\nconn = http.client.HTTPSConnection(\"api.paymentic.com\")\npayload = json.dumps({\n  \"msisdn\": \"48987654321\",\n  \"reason\": \"RMA\"\n})\nheaders = {\n  'Accept': 'application/json',\n  'Content-Type': 'application/json',\n  'Authorization': 'Bearer {{bearerToken}}'\n}\nconn.request(\"POST\", \"/v1/directbilling/:pointId/transactions/:transactionId/refunds\", payload, headers)\nres = conn.getresponse()\ndata = res.read()\nprint(data.decode(\"utf-8\"))"
          }
        ],
        "tags": [
          "directbilling-refunds"
        ],
        "parameters": [
          {
            "in": "path",
            "name": "pointId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/pointId"
            }
          },
          {
            "in": "path",
            "name": "transactionId",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/schemas-transactionId"
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/directbillingCreateTransactionRefundRequest"
        },
        "responses": {
          "201": {
            "$ref": "#/components/responses/directbillingTransactionRefundCreatedResponse"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message",
                    "errorCode"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "default": "Bad Request"
                    },
                    "errorCode": {
                      "type": "string",
                      "enum": [
                        "TRANSACTION_NOT_PAID",
                        "TRANSACTION_PROVIDER_NOT_SUPPORTED",
                        "TRANSACTION_TOO_OLD"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          }
        }
      }
    }
  },
  "x-webhooks": {
    "directbillingTransactionNotification": {
      "post": {
        "operationId": "directbillingTransactionNotification",
        "summary": "Notyfikacja",
        "tags": [
          "directbilling-introduction"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "User-Agent",
            "description": "Wersja notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Paymentic/1.0"
            }
          },
          {
            "in": "header",
            "name": "X-Paymentic-Notification-Id",
            "description": "Identyfikator notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "format": "ulid",
              "example": "01j5sxag3d5mzxczq4p567ecq8"
            }
          },
          {
            "in": "header",
            "name": "X-Paymentic-Time",
            "description": "Czas wysłania notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "format": "ISO 8601",
              "example": "2024-09-20T09:48:03+02:00"
            }
          },
          {
            "in": "header",
            "name": "X-Paymentic-Signature",
            "description": "Sygnatura notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "format": "base64",
              "example": "8XYkwtl7wbjf74DUPFab0GP6/us4u91xHectfnxsqr0GQ9aU8Wj/l/g7BSyuwilQ2oVY1Yppnci5/z4CaRPtWQ=="
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/directbillingTransactionNotification"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/directbillingTransactionNotificationResponse"
          },
          "202": {
            "$ref": "#/components/responses/directbillingTransactionNotificationResponse"
          }
        }
      }
    },
    "paymentTransactionStatusNotification": {
      "post": {
        "operationId": "paymentTransactionStatusNotification",
        "summary": "Status transakcji",
        "tags": [
          "payment-notifications"
        ],
        "parameters": [
          {
            "in": "header",
            "name": "User-Agent",
            "description": "Wersja notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "example": "Paymentic/1.1"
            }
          },
          {
            "in": "header",
            "name": "X-Paymentic-Event",
            "description": "Typ notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "example": "PAYMENT.TRANSACTION_STATUS_CHANGED"
            }
          },
          {
            "in": "header",
            "name": "X-Paymentic-Notification-Id",
            "description": "Identyfikator notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "format": "ulid",
              "example": "01j9wnm31m43e81p2snqn5cp6y"
            }
          },
          {
            "in": "header",
            "name": "X-Paymentic-Time",
            "description": "Czas wysłania notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "format": "ISO 8601 UTC offset",
              "example": "2024-09-20T09:48:03+02:00"
            }
          },
          {
            "in": "header",
            "name": "X-Paymentic-Signature",
            "description": "Sygnatura notyfikacji",
            "required": true,
            "schema": {
              "type": "string",
              "format": "base64",
              "example": "8XYkwtl7wbjf74DUPFab0GP6/us4u91xHectfnxsqr0GQ9aU8Wj/l/g7BSyuwilQ2oVY1Yppnci5/z4CaRPtWQ=="
            }
          }
        ],
        "requestBody": {
          "$ref": "#/components/requestBodies/paymentTransactionNotification"
        },
        "responses": {
          "200": {
            "$ref": "#/components/responses/paymentTransactionNotificationResponse"
          },
          "202": {
            "$ref": "#/components/responses/paymentTransactionNotificationResponse"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerToken": {
        "type": "http",
        "description": "Wygeneruj dostęp do API w panelu klienta, zakładka \"Dostęp API\"\nMożesz także spersonalizować uprawnienia dla każdego klucza.<br/>\n<br/>\nWygląd nagłówna autoryzacyjnego\n| Name | Value |\n| ---- | ----- |\n| Authorization | Bearer: klucz api z panelu |\n",
        "scheme": "bearer",
        "bearerFormat": "bearer"
      }
    },
    "schemas": {
      "pointId": {
        "type": "string",
        "description": "Identyfikator punktu płatności",
        "pattern": "^[0-9a-f]{8}$",
        "minLength": 8,
        "maxLength": 8
      },
      "transactionId": {
        "type": "string",
        "description": "Identyfikator transakcji",
        "pattern": "^[A-Z0-9]{4}-[A-Z0-9]{3}-[A-Z0-9]{3}-[A-Z0-9]{4}$",
        "minLength": 14,
        "maxLength": 14
      },
      "transactionStatus": {
        "type": "string",
        "default": "CREATED",
        "enum": [
          "CREATED",
          "PENDING",
          "PAID",
          "FAILED",
          "CANCELLED"
        ]
      },
      "paymentTransactionsListResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "status",
                "amount",
                "currency",
                "commission",
                "title",
                "description",
                "customer",
                "custom",
                "redirect",
                "channelId",
                "whitelabel",
                "paidAt",
                "expiresAt",
                "createdAt"
              ],
              "properties": {
                "id": {
                  "$ref": "#/components/schemas/transactionId"
                },
                "status": {
                  "$ref": "#/components/schemas/transactionStatus"
                },
                "amount": {
                  "type": "number",
                  "format": "float",
                  "description": "Kwota transakcji"
                },
                "currency": {
                  "type": "string",
                  "format": "ISO 4217",
                  "description": "Waluta transakcji"
                },
                "commission": {
                  "type": "number",
                  "format": "float",
                  "nullable": true,
                  "description": "Prowizja pobrana z transakcji przez Paymentic"
                },
                "title": {
                  "type": "string",
                  "description": "Tytuł transakcji nadany przez Partnera"
                },
                "description": {
                  "type": "string",
                  "nullable": true,
                  "description": "Opis transakcji nadany przez Partnera"
                },
                "customer": {
                  "type": "object",
                  "required": [
                    "name",
                    "email"
                  ],
                  "properties": {
                    "name": {
                      "type": "string",
                      "description": "Imię i Nazwisko/Nazwa Płatnika"
                    },
                    "email": {
                      "type": "string",
                      "format": "email",
                      "description": "Adres email płatnika"
                    }
                  }
                },
                "custom": {
                  "type": "string",
                  "nullable": true,
                  "description": "Pole dodatkowe wykorzystane przez Partnera"
                },
                "redirect": {
                  "type": "object",
                  "required": [
                    "success",
                    "failure"
                  ],
                  "properties": {
                    "success": {
                      "type": "string",
                      "format": "url",
                      "nullable": true,
                      "description": "Adres URL do powrotu po udanej transakcji"
                    },
                    "failure": {
                      "type": "string",
                      "format": "url",
                      "nullable": true,
                      "description": "Adres URL do powrotu po nieudanej transakcji"
                    }
                  }
                },
                "channelId": {
                  "type": "string",
                  "nullable": true,
                  "description": "ID kanału płatności"
                },
                "whitelabel": {
                  "type": "boolean",
                  "description": "Informacja czy transakcja utworzona w trybie whitelabel"
                },
                "paidAt": {
                  "type": "string",
                  "format": "ISO 8601 UTC offset",
                  "nullable": true,
                  "description": "Data opłacenia transakcji"
                },
                "expiresAt": {
                  "type": "string",
                  "format": "ISO 8601 UTC offset",
                  "nullable": true,
                  "description": "Data przeterminowania transakcji"
                },
                "createdAt": {
                  "type": "string",
                  "format": "ISO 8601 UTC offset",
                  "description": "Data utworzenia transakcji"
                }
              }
            }
          }
        }
      },
      "ErrorResponseUnauthorized": {
        "type": "object",
        "required": [
          "message",
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Message",
            "default": "Unauthorized"
          },
          "errorCode": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "UNAUTHORIZED"
            ]
          }
        }
      },
      "ErrorResponseForbidden": {
        "type": "object",
        "required": [
          "message",
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Message",
            "default": "Forbidden"
          },
          "errorCode": {
            "type": "string",
            "description": "Error code",
            "enum": [
              "INVALID_ABILITY_PROVIDED",
              "IP_ADDRESS_NOT_WHITELISTED"
            ]
          }
        }
      },
      "ErrorResponseNotFound": {
        "type": "object",
        "required": [
          "message",
          "errorCode"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Message",
            "default": "Not found"
          },
          "errorCode": {
            "type": "string",
            "enum": [
              "POINT_NOT_FOUND",
              "TRANSACTION_NOT_FOUND",
              "RESOURCE_NOT_FOUND"
            ]
          }
        }
      },
      "ErrorUnprocessableContent": {
        "type": "object",
        "required": [
          "message",
          "errorCode",
          "errors"
        ],
        "properties": {
          "message": {
            "type": "string",
            "description": "Message",
            "default": "Unprocessable content"
          },
          "errorCode": {
            "type": "string",
            "description": "Error status code",
            "enum": [
              "VALIDATION_ERROR"
            ]
          },
          "errors": {
            "type": "object",
            "properties": {
              "amount": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          }
        },
        "example": {
          "message": "Unprocessable content",
          "errorCode": "VALIDATION_ERROR",
          "errors": {
            "amount": [
              "The amount field is required."
            ],
            "title": [
              "The title field is required."
            ]
          }
        }
      },
      "paymentCreateTransactionRequest": {
        "type": "object",
        "required": [
          "amount",
          "title"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "float",
            "description": "Kwota netto transakcji",
            "minimum": 1
          },
          "title": {
            "type": "string",
            "description": "Tytuł transakcji wyświetlany na bramce płatniczej i przesyłany do banku",
            "maxLength": 32,
            "minLength": 5
          },
          "currency": {
            "type": "number",
            "format": "ISO 4217",
            "nullable": true,
            "description": "Waluta transakcji",
            "default": "PLN"
          },
          "description": {
            "type": "string",
            "description": "Szczegółowy opis transakcji wyświetlany na bramce płatniczej",
            "maxLength": 128
          },
          "custom": {
            "type": "string",
            "description": "Pole do wykorzystania przez partnera np. do przesłania ID transakcji sklepu",
            "maxLength": 128
          },
          "customer": {
            "type": "object",
            "nullable": true,
            "description": "Podstawowe dane kupującego",
            "properties": {
              "name": {
                "type": "string",
                "description": "Imię i Nazwisko lub Nazwa kupującego",
                "maxLength": 64
              },
              "email": {
                "type": "string",
                "format": "email",
                "description": "Adres email kupującego",
                "maxLength": 64
              },
              "ip": {
                "type": "string",
                "format": "ip",
                "description": "Adres IP kupującego"
              },
              "userAgent": {
                "type": "string",
                "description": "User-Agent kupującego"
              }
            }
          },
          "redirect": {
            "type": "object",
            "nullable": true,
            "description": "Adresy URL do przekierowania klienta po transakcji",
            "properties": {
              "success": {
                "type": "string",
                "format": "url",
                "description": "Adres URL do przekierowania klienta po prawidłowej transakcji",
                "maxLength": 255
              },
              "failure": {
                "type": "string",
                "format": "url",
                "description": "Adres URL do przekierowania klienta po błędnej transakcji",
                "maxLength": 255
              }
            }
          },
          "directChannel": {
            "type": "string",
            "description": "Id kanału płatności",
            "nullable": true
          },
          "whitelabel": {
            "type": "boolean",
            "description": "Transakcja typu whitelabel",
            "default": false
          },
          "expiresAt": {
            "type": "string",
            "format": "datetime",
            "nullable": true,
            "description": "Data ważności transakcji"
          }
        }
      },
      "paymentTransactionCreatedSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "redirectUrl",
              "whitelabel"
            ],
            "properties": {
              "id": {
                "$ref": "#/components/schemas/transactionId"
              },
              "redirectUrl": {
                "type": "string",
                "format": "url",
                "description": "Adres URL na jaki należy przekierować klienta"
              },
              "whitelabel": {
                "type": "object",
                "description": "Inoformacje związane z whitelabel"
              }
            },
            "example": {
              "id": "A692-B0N-BLV-4JI0",
              "redirectUrl": "https://pay.sadbox.paymentic.com/A692-B0N-BLV-4JI0?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJhcGkucGF5bWVudGljLmNvbSIsInN1YiI6IlBheW1lbnRpYyBTcC4geiBvLm8uIiwiYXVkIjoicGF5bWVudCIsImlhdCI6MTcyNDY4NDE5OCwiZXhwIjoxNzI0Njg3Nzk4LCJ0cmFuc2FjdGlvbklkIjoiVUExLVBCUC04SlotVkpWMSJ9.afYuPVG9wCn4UWBkkzZdVeyaKQCzmAkj246QWi9VZN-m9WK8UomxQi1MECgbVvSK",
              "whitelabel": null
            }
          }
        }
      },
      "paymentTransactionResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "status",
              "amount",
              "currency",
              "commission",
              "title",
              "description",
              "customer",
              "custom",
              "redirect",
              "channelId",
              "isTest",
              "whitelabel",
              "paidAt",
              "expiresAt",
              "createdAt"
            ],
            "properties": {
              "id": {
                "$ref": "#/components/schemas/transactionId"
              },
              "status": {
                "$ref": "#/components/schemas/transactionStatus"
              },
              "amount": {
                "type": "number",
                "format": "float",
                "description": "Kwota transakcji"
              },
              "currency": {
                "type": "string",
                "format": "",
                "description": "Waluta transakcji"
              },
              "commission": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "Prowizja pobrana z transakcji przez Paymentic"
              },
              "title": {
                "type": "string",
                "description": "Tytuł transakcji przesłany przez Partnera"
              },
              "description": {
                "type": "string",
                "nullable": true,
                "description": "Opis transakcji przesłany przez partnera"
              },
              "customer": {
                "type": "object",
                "required": [
                  "name",
                  "email"
                ],
                "properties": {
                  "name": {
                    "type": "string",
                    "nullable": true,
                    "description": "Nazwa Płatnika"
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "nullable": true,
                    "description": "Adres email Płatnika"
                  }
                }
              },
              "custom": {
                "type": "string",
                "nullable": true,
                "description": "Pole dodatkowe przeznaczone do wykorzystania przez Partnera"
              },
              "redirect": {
                "type": "object",
                "required": [
                  "success",
                  "failure"
                ],
                "properties": {
                  "success": {
                    "type": "string",
                    "format": "url",
                    "nullable": true,
                    "description": "Adres URL do przekierowania po prawidłowej transakcji"
                  },
                  "failure": {
                    "type": "string",
                    "format": "url",
                    "nullable": true,
                    "description": "Adres URL do przekierowania po nieudanej transakcji"
                  }
                }
              },
              "channelId": {
                "type": "string",
                "nullable": true,
                "description": "Id kanału z jakiego została dokonana transakcja"
              },
              "isTest": {
                "type": "boolean",
                "description": "Informacja czy transakcja utworzona w trybie testowym"
              },
              "whitelabel": {
                "type": "boolean",
                "description": "Informacja czy transakcja utworzona w trybie whitelabel"
              },
              "paidAt": {
                "type": "string",
                "format": "ISO 8601 UTC offset",
                "nullable": true,
                "description": "Data opłacenia transakcji"
              },
              "expiresAt": {
                "type": "string",
                "format": "ISO 8601 UTC offset",
                "nullable": true,
                "description": "Data wygaśnięcia transakcji"
              },
              "createdAt": {
                "type": "string",
                "format": "ISO 8601 UTC offset",
                "description": "Data utworzenia transakcji"
              }
            }
          }
        }
      },
      "paymentBlikRequest": {
        "type": "object",
        "required": [
          "code"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Typ autoryzacji transakcji BLIK",
            "default": "CODE"
          },
          "code": {
            "type": "string",
            "description": "Kod BLIK do autoryzacji transakcji",
            "maxLength": 6,
            "minLength": 6
          }
        },
        "example": {
          "type": "CODE",
          "code": "777256"
        }
      },
      "paymentBlikSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "actionId",
              "alias"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "ulid"
              },
              "alias": {
                "type": "object"
              }
            },
            "example": {
              "actionId": "01jf98t8rhhxh69dqf53msshcg",
              "alias": null
            }
          }
        }
      },
      "paymentBlikBadRequestSchema": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "example": "The BLIK code is invalid"
          },
          "errorCode": {
            "type": "string",
            "example": "BLIK_CODE_NOT_FOUND"
          }
        }
      },
      "paymentChannelsResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "available",
                "status",
                "category",
                "name",
                "img",
                "amount",
                "commission",
                "currencies",
                "enabledAt",
                "disablingAt"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "description": "ID kanału"
                },
                "available": {
                  "type": "boolean",
                  "description": "Czy kanał płatności jest aktualnie dostępny"
                },
                "status": {
                  "type": "string",
                  "description": "Status kanału płatności"
                },
                "category": {
                  "type": "string",
                  "description": "Kategoria kanału płatności"
                },
                "name": {
                  "type": "string",
                  "description": "Nazwa kanału płatości"
                },
                "img": {
                  "type": "string",
                  "format": "url",
                  "description": "Adres URL loga kanału płatności"
                },
                "amount": {
                  "type": "object",
                  "required": [
                    "minimum",
                    "maximum"
                  ],
                  "properties": {
                    "minimum": {
                      "type": "number",
                      "format": "float",
                      "description": "Minimalna kwota płatności dla kanału"
                    },
                    "maximum": {
                      "type": "number",
                      "format": "float",
                      "description": "Maksymalna kwota płatności dla kanału"
                    }
                  }
                },
                "commission": {
                  "type": "object",
                  "required": [
                    "value",
                    "minimum"
                  ],
                  "properties": {
                    "value": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "description": "Prcentowa prowizja pobierana od płatności danym kanałem"
                    },
                    "minimum": {
                      "type": "number",
                      "format": "float",
                      "nullable": true,
                      "description": "Prowizja minimalna pobierana od płatności danym kanałem"
                    }
                  }
                },
                "currencies": {
                  "type": "array",
                  "description": "Waluty dostępne dla kanłu płatności w formacie `ISO 4217`",
                  "items": {
                    "type": "string",
                    "format": "ISO 4217"
                  }
                },
                "enabledAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "Data i godzina kiedy kanał zostanie włączony w przypadku gdy jest wyłączony"
                },
                "disablingAt": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true,
                  "description": "Data i godzina kiedy kanał zostanie wyłączony w przypadku gdy jest włączony"
                }
              },
              "example": {
                "id": "blik",
                "available": true,
                "status": "ACTIVE",
                "category": "BLIK",
                "name": "BLIK",
                "img": "https://static.paymentic.com/payment/channels/blik.png",
                "amount": {
                  "minimum": 0.1,
                  "maximum": 10000
                },
                "commission": {
                  "value": 1.4,
                  "minimum": 0.1
                },
                "currencies": [
                  "PLN"
                ],
                "enablingAt": null,
                "disablingAt": "2024-09-24T10:00:00+02:00"
              }
            }
          }
        }
      },
      "msisdn": {
        "type": "string",
        "description": "Numer telefonu",
        "example": "48987654321",
        "pattern": "^48\\d{9}$"
      },
      "directbillingCreateTransactionRequest": {
        "type": "object",
        "required": [
          "amount",
          "title"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "float",
            "description": "Kwota netto transakcji",
            "minimum": 1
          },
          "title": {
            "type": "string",
            "description": "Tytuł transakcji wyświetlany na bramce płatniczej i wiadomości SMS z kodem wysyłanym do klienta",
            "maxLength": 32,
            "minLength": 5
          },
          "description": {
            "type": "string",
            "description": "Szczegółowy opis transakcji wyświetlany na bramce płatniczej",
            "maxLength": 128
          },
          "custom": {
            "type": "string",
            "description": "Pole do wykorzystania przez partnera",
            "maxLength": 64
          },
          "msisdn": {
            "$ref": "#/components/schemas/msisdn"
          },
          "returns": {
            "type": "object",
            "nullable": true,
            "description": "Adresy URL do przekierowania klienta po transakcji",
            "properties": {
              "success": {
                "type": "string",
                "format": "url",
                "maxLength": 255
              },
              "failure": {
                "type": "string",
                "format": "url",
                "maxLength": 255
              }
            }
          }
        }
      },
      "schemas-transactionId": {
        "type": "string",
        "description": "Identyfikator transakcji",
        "pattern": "^[A-Z0-9]{3}-[A-Z0-9]{3}-[A-Z0-9]{3}-[A-Z0-9]{4}$",
        "minLength": 13,
        "maxLength": 13
      },
      "directbillingTransactionCreatedSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "isTest",
              "redirectUrl"
            ],
            "properties": {
              "id": {
                "$ref": "#/components/schemas/schemas-transactionId"
              },
              "isTest": {
                "type": "boolean",
                "description": "Informacja czy transakcja utworzona w trybie testowym"
              },
              "redirectUrl": {
                "type": "string",
                "format": "url",
                "description": "Adres URL na jaki należy przekierować klienta"
              }
            },
            "example": {
              "id": "692-B0N-BLV-4JI0",
              "isTest": false,
              "redirectUrl": "https://directbilling.paymentic.com/UA1-PBP-8JZ-VJV1?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzM4NCJ9.eyJpc3MiOiJhcGkucGF5bWVudGljLmNvbSIsInN1YiI6IlBheW1lbnRpYyBTcC4geiBvLm8uIiwiYXVkIjoicGF5bWVudCIsImlhdCI6MTcyNDY4NDE5OCwiZXhwIjoxNzI0Njg3Nzk4LCJ0cmFuc2FjdGlvbklkIjoiVUExLVBCUC04SlotVkpWMSJ9.afYuPVG9wCn4UWBkkzZdVeyaKQCzmAkj246QWi9VZN-m9WK8UomxQi1MECgbVvSK"
            }
          }
        }
      },
      "directbillingTransactionResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id",
              "status",
              "amount",
              "currency",
              "commission",
              "title",
              "description",
              "msisdn",
              "mccmnc",
              "custom",
              "paidAt",
              "createdAt"
            ],
            "properties": {
              "id": {
                "$ref": "#/components/schemas/schemas-transactionId"
              },
              "status": {
                "$ref": "#/components/schemas/transactionStatus"
              },
              "amount": {
                "type": "number",
                "description": "Kwota transakcji"
              },
              "currency": {
                "type": "string",
                "nullable": true,
                "format": "ISO 4217",
                "description": "Waluta transakcji"
              },
              "commission": {
                "type": "number",
                "format": "float",
                "nullable": true,
                "description": "Prowizja przysługująca Partnerowi z transakcji"
              },
              "title": {
                "type": "string",
                "description": "Tytuł transakcji"
              },
              "description": {
                "type": "string",
                "description": "Opis transakcji"
              },
              "msisdn": {
                "$ref": "#/components/schemas/msisdn"
              },
              "mccmnc": {
                "type": "number",
                "description": "Kod operatora telefonicznego numeru"
              },
              "custom": {
                "type": "string",
                "description": "Pole do wykorzystania przez partnera"
              },
              "paidAt": {
                "type": "string",
                "format": "date-time",
                "nullable": true,
                "description": "Data opłacenia transakcji"
              },
              "createdAt": {
                "type": "string",
                "format": "date-time",
                "nullable": false,
                "description": "Data utworzenia transakcji"
              }
            }
          }
        },
        "example": {
          "data": {
            "id": "H9P-DC5-954-C5Q0",
            "status": "PAID",
            "amount": 10.24,
            "currency": "PLN",
            "commission": 4.3,
            "title": "Doładowanie smoczych monet",
            "description": "Gracz doładowuje 30 smocznych monet na serwerze gry",
            "msisdn": "48987654321",
            "mncmcc": 26001,
            "custom": "6d492b3a-2d5e-4fd2-a7b2-5087204f6d6d",
            "paidAt": "2019-08-24T14:15:22+02:00",
            "createdAt": "2019-08-24T14:15:22+02:00"
          }
        }
      },
      "directbillingCreateTransactionRefundRequest": {
        "type": "object",
        "required": [
          "msisdn",
          "reason"
        ],
        "properties": {
          "msisdn": {
            "$ref": "#/components/schemas/msisdn"
          },
          "reason": {
            "type": "string",
            "enum": [
              "RMA",
              "OTHER"
            ]
          },
          "description": {
            "type": "string",
            "description": "Opis powodu zwrotu transakcji",
            "nullable": true,
            "minLength": 10,
            "maxLength": 128
          }
        }
      },
      "directbillingTransactionRefundCreatedSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "required": [
              "id"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "ulid",
                "description": "ID zgłoszenia zwrotu"
              }
            }
          }
        },
        "example": {
          "data": {
            "id": "01J68MV9ETHAWEZS2JH7F8DQZ3"
          }
        }
      },
      "mccmnc": {
        "type": "number",
        "format": "int",
        "description": "Kod MCC MNC operatora płatności"
      },
      "directbillingTransactionNotificationSchema": {
        "type": "object",
        "required": [
          "transactionId",
          "pointId",
          "status",
          "amount",
          "commission",
          "custom",
          "msisdn",
          "mccmnc",
          "isTest"
        ],
        "properties": {
          "transactionId": {
            "$ref": "#/components/schemas/schemas-transactionId"
          },
          "pointId": {
            "$ref": "#/components/schemas/pointId"
          },
          "status": {
            "$ref": "#/components/schemas/transactionStatus"
          },
          "amount": {
            "type": "number",
            "format": "float",
            "description": "Kwota transakcji"
          },
          "commission": {
            "type": "number",
            "format": "float",
            "description": "Prowizja przysługująca z transakcji Partnerowi"
          },
          "custom": {
            "type": "string",
            "nullable": true,
            "description": "Pole dodatkowe przeznaczone do wykorzystania przez Partnera"
          },
          "msisdn": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/msisdn"
              }
            ]
          },
          "mccmnc": {
            "nullable": true,
            "allOf": [
              {
                "$ref": "#/components/schemas/mccmnc"
              }
            ]
          },
          "isTest": {
            "type": "boolean",
            "description": "Informacja czy to transakcja testowa"
          }
        },
        "example": {
          "transactionId": "CR6-75T-KVY-DAV4",
          "pointId": "e99ed63d",
          "status": "PENDING",
          "amount": 14.24,
          "commission": null,
          "custom": null,
          "msisdn": "48987654321",
          "mccmnc": 26001,
          "isTest": false
        }
      },
      "paymentTransactionNotificationSchema": {
        "type": "object",
        "required": [
          "transactionId",
          "pointId",
          "status",
          "amount",
          "currency",
          "commission",
          "custom",
          "channelId"
        ],
        "properties": {
          "transactionId": {
            "$ref": "#/components/schemas/transactionId"
          },
          "pointId": {
            "$ref": "#/components/schemas/pointId"
          },
          "status": {
            "$ref": "#/components/schemas/transactionStatus"
          },
          "amount": {
            "type": "number",
            "format": "float",
            "description": "Kwota transakcji"
          },
          "currency": {
            "type": "string",
            "format": "ISO 4217",
            "description": "Waluta transakcji"
          },
          "commission": {
            "type": "number",
            "format": "float",
            "nullable": true,
            "description": "Prowizja pobrana z transakcji przez Paymentic"
          },
          "custom": {
            "type": "string",
            "nullable": true,
            "description": "Pole dodatkowe przeznaczone do wykorzystania przez Partnera"
          },
          "channelId": {
            "type": "string",
            "nullable": true,
            "description": "Id kanału płatności"
          }
        },
        "example": {
          "transactionId": "1CR6-75T-KVY-DAV3",
          "pointId": "e99ed63d",
          "status": "CREATED",
          "amount": 14.24,
          "currency": "PLN",
          "commission": null,
          "custom": null,
          "channelId": null
        }
      }
    },
    "responses": {
      "paymentTransactionsListResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentTransactionsListResponseSchema"
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponseUnauthorized"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Forbidden",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponseForbidden"
            }
          }
        }
      },
      "NotFound": {
        "description": "NotFound",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponseNotFound"
            }
          }
        }
      },
      "UnprocessableContent": {
        "description": "Unprocessable Content",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorUnprocessableContent"
            }
          }
        }
      },
      "paymentTransactionCreatedResponse": {
        "description": "Created",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentTransactionCreatedSchema"
            }
          }
        }
      },
      "paymentTransactionResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentTransactionResponseSchema"
            }
          }
        }
      },
      "paymentBlikResponse": {
        "description": "Accepted",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentBlikSchema"
            }
          }
        }
      },
      "paymentBlikBadRequestResponse": {
        "description": "Bad Request",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentBlikBadRequestSchema"
            }
          }
        }
      },
      "paymentChannelsResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentChannelsResponse"
            }
          }
        }
      },
      "directbillingTransactionCreatedResponse": {
        "description": "Created",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/directbillingTransactionCreatedSchema"
            }
          }
        }
      },
      "directbillingTransactionResponse": {
        "description": "OK",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/directbillingTransactionResponseSchema"
            }
          }
        }
      },
      "directbillingTransactionRefundCreatedResponse": {
        "description": "Created",
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/directbillingTransactionRefundCreatedSchema"
            }
          }
        }
      },
      "directbillingTransactionNotificationResponse": {
        "description": "OK",
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "default": "OK"
            },
            "example": "OK"
          }
        }
      },
      "paymentTransactionNotificationResponse": {
        "content": {
          "text/plain": {
            "schema": {
              "type": "string",
              "default": "OK"
            },
            "example": "OK"
          }
        }
      }
    },
    "requestBodies": {
      "paymentCreateTransactionRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentCreateTransactionRequest"
            }
          }
        }
      },
      "paymentBlikRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentBlikRequest"
            }
          }
        }
      },
      "directbillingCreateTransactionRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/directbillingCreateTransactionRequest"
            }
          }
        }
      },
      "directbillingCreateTransactionRefundRequest": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/directbillingCreateTransactionRefundRequest"
            }
          }
        }
      },
      "directbillingTransactionNotification": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/directbillingTransactionNotificationSchema"
            }
          }
        }
      },
      "paymentTransactionNotification": {
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/paymentTransactionNotificationSchema"
            }
          }
        }
      }
    }
  }
}