openapi: 3.1.0
info:
  title: UpGate API documentation
  description: >
    UpGate is a world-class payment orchestration platform. 

    Our mission is to simplify payments and make it easier for merchants to
    reach global customers. 

    We use the latest technologies to help you achieve better conversions and
    global user monetization.
  version: '1.2'
  termsOfService: https://upgate.com/terms
  contact:
    email: sales@upgate.com
    url: https://upgate.com
security:
  - X-Api-Key: []
servers:
  - url: https://api.sandbox.upgate.com/v1
    description: Sandbox UpGate API
tags:
  - name: Changelog
    description: |-
      <div>
        <h3 class="md">[1.1.35] - 2025-05-23</h3>
        <h4 class="md">Added</h4>
        <ul><li>New response code '2016 Crypto address is invalid'</li></ul>

        <h3 class="md">[1.1.34] - 2025-05-19</h3>
        <h4 class="md">Added</h4>
        <ul><li><code>taxOverride</code> object was added to <a href="/openapi/sale-request-examples/checkout_request">Checkout request</a></li></ul>

        <h3 class="md">[1.1.33] - 2025-04-25</h3>
        <h4 class="md">Added</h4>
        <ul><li>New response code '2908 Payment token is not valid'</li></ul>

        <h3 class="md">[1.1.32] - 2025-04-14</h3>
        <h4 class="md">Added</h4>
        <ul><li>New payment methods added</li></ul>

        <h3 class="md">[1.1.31] - 2025-04-03</h3>
        <h4 class="md">Added</h4>
        <ul><li>New fields rebill_transaction_amount, rebill_transaction_currency_code to transaction product postback & response</li></ul>

        <h3 class="md">[1.1.30] - 2025-04-07</h3>
        <h4 class="md">Added</h4>
        <ul><li>New payment methods added</li></ul>

        <h3 class="md">[1.1.29] - 2025-03-05</h3>
        <h4 class="md">Added</h4>
        <ul><li>New field customer_selected_country_code to postback payment details</li></ul>

        <h3 class="md">[1.1.28] - 2025-02-24</h3>
        <h4 class="md">Added</h4>
        <ul><li>New transaction types: RDR and RDR_REVERSAL</li></ul>

        <h3 class="md">[1.1.27] - 2025-02-17</h3>
        <h4 class="md">Added</h4>
        <ul>
          <li>New fields customer_phone_number, customer_email, customer_first_name, customer_last_name, payment_token_type to postback payment details</li>
          <li>New fields processor_response_text, cascade_attempt, has_been_cascaded to postback transaction details</li>
        </ul>

        <h3 class="md">[1.1.26] - 2025-01-28</h3>
        <h4 class="md">Added</h4>
        <ul><li>New response code '2907 Payment type not supported for payment method'</li></ul>

        <h3 class="md">[1.1.25] - 2025-01-27</h3>
        <h4 class="md">Changed</h4>
        <ul><li>Updated the page structure</li></ul>

        <h3 class="md">[1.1.24] - 2025-01-15</h3>
        <h4 class="md">Added</h4>
        <ul>
          <li><code>paymentFormOverride</code> object was added to <a href="/openapi/sale-request-examples/checkout_request">Checkout request</a></li>
          <li>Override theme <a href="/openapi/override-theme">chapter</a></li>
        </ul>

        <h3 class="md">[1.1.23] - 2024-12-15</h3>
        <h4 class="md">Added</h4>
        <ul><li>New response code '2309 Customer blacklisted'</li></ul>

        <h3 class="md">[1.1.22] - 2024-11-26</h3>
        <h4 class="md">Added</h4>
        <ul>
          <li>Field version has been added to data in transaction postbacks</li>
          <li>Field version has been added to data in subscription postbacks</li>
        </ul>

        <h3 class="md">[1.1.21] - 2024-10-16</h3>
        <h4 class="md">Removed</h4>
        <ul>
          <li>Payment detail card_token_id has been removed from data.transactions.payment_details in postbacks</li>
          <li>Payment detail card_token_id has been removed from data.transactions.payment_details in response to synchronous mit-sale and mit-authorize</li>
        </ul>

        <h3 class="md">[1.1.20] - 2024-10-03</h3>
        <h4 class="md">Changed</h4>
        <ul>
          <li>Field <strong>payment_token_id</strong> as a required for <a href="/openapi/other-request-examples/mit_sale_request">MIT Sale Request</a> and <a href="/openapi/other-request-examples/mit_authorize_request">MIT Authorize Request</a></li>
          <li>Field <strong>methods</strong> as an optional field for <a href="/openapi/sale-request-examples/checkout_request">Checkout Request</a></li>
          <li>Field <strong>shop_name</strong> max length from 64 to 128 characters in <a href="/openapi/sale-request-examples/checkout_request">Checkout Request</a></li>
          <li>Field <strong>merchant_product_id</strong> max length from 64 to 128 characters in <a href="/openapi/sale-request-examples/checkout_request">Checkout Request</a></li>
        </ul>
        <h4 class="md">Updated</h4>
        <ul>
          <li><a href="/openapi/section/postback-ip-addresses">Postback IP addresses</a></li>
          <li><a href="/openapi/section/constants/response-codes">Response codes</a></li>
          <li><a href="/openapi/section/alternative-payment-methods-(apm)/support-payment-methods">Supported APM methods</a></li>
          <li><a href="/openapi/section/card-flow/supported-payment-methods">Supported card payment methods</a></li>
        </ul>

        <h3 class="md">[1.1.19] - 2024-09-17</h3>
        <h4 class="md">Changed</h4>
        <ul>
          <li>Changed max length for field <strong>success_url</strong> from 2048 to 512</li>
          <li>Changed max length for field <strong>failure_url</strong> from 2048 o 512</li>
        </ul>

        <h3 class="md">[1.1.18] - 2024-07-23</h3>
        <h4 class="md">Added</h4>
        <ul><li>Added request subscription by transaction ID</li></ul>

        <h3 class="md">[1.1.17] - 2024-04-12</h3>
        <h4 class="md">Added</h4>
        <ul><li>Added Subscription state request by subscription id</li></ul>

        <h3 class="md">[1.1.16] - 2024-04-10</h3>
        <h4 class="md">Added</h4>
        <ul><li>For callback added fields <strong>transaction_amount</strong>, <strong>transaction_currency_code</strong> and <strong>product_transaction_price</strong></li></ul>

        <h3 class="md">[1.1.15] - 2024-04-04</h3>
        <h4 class="md">Changed</h4>
        <ul><li>Update response codes</li></ul>

        <h3 class="md">[1.1.14] - 2024-02-20</h3>
        <h4 class="md">Added</h4>
        <ul>
          <li>Added Direct payment flow section</li>
          <li>Added Checkout flow section</li>
          <li>Added Checkout request examples</li>
          <li>Added description of Embedded flow for Checkout</li>
          <li>Added new APM payment methods</li>
        </ul>

        <h3 class="md">[1.1.13] - 2023-12-12</h3>
        <h4 class="md">Added</h4>
        <ul>
          <li>Added fields <strong>shop_name</strong> and <strong>shop_url</strong></li>
          <li>For subscription added fields <strong>retry_at</strong>, <strong>retry_count</strong> and <strong>created_at</strong></li>
          <li>Added new APM payment methods</li>
        </ul>
        <h4 class="md">Changed</h4>
        <ul><li>Update response codes</li></ul>

        <h3 class="md">[1.1.12] - 2023-09-05</h3>
        <h4 class="md">Added</h4>
        <ul><li>Create token endpoint</li></ul>
        <h4 class="md">Changed</h4>
        <ul><li>Update response codes</li></ul>

        <h3 class="md">[1.1.11] - 2023-03-05</h3>
        <h4 class="md">Changed</h4>
        <ul>
          <li>For subscription renamed field <strong>customer_id</strong> to <strong>merchant_customer_id</strong></li>
          <li>For subscription renamed field <strong>is_enabled</strong> to <strong>is_rebill_enabled</strong></li>
          <li>Changed max length for field <strong>success_url</strong> from 64 to 2048</li>
          <li>Changed max length for field <strong>failure_url</strong> from 64 to 2048</li>
          <li>Changed max length for field <strong>email</strong> from 64 to 320</li>
          <li>Changed that the amount for Authorize can be 0</li>
        </ul>
        <h4 class="md">Removed</h4>
        <ul><li>Required header X-Merchant-ID from all requests</li></ul>
      </div>
  - name: Introduction
    description: >
      ## Merchant callback URL


      URL for callback's (postback's) should be set with

      the merchant account (during the registration) & can be

      updated in any time using admin panel


      ## Domains


      | environment | domain                 |

      | ----------- | ---------------------- |

      | Sandbox     | api.sandbox.upgate.com |

      | Prod        | api.upgate.com         |


      ## Postback IP addresses


      | production     | sandbox        |

      | -------------- | -------------- |

      | 18.195.228.88  | 35.159.56.107  |

      | 3.68.255.126   | 18.153.214.226 |

      | 3.127.95.240   | 18.194.246.210 |

      | 18.198.146.231 | 52.28.150.254  |


      # Constants


      ## Transaction status


      | status  | description                                 |

      | ------- | ------------------------------------------- |

      | SUCCESS | Transaction completed success               |

      | DECLINE | Transaction declined by some reason         |

      | ERROR   | Some error were produced during the process |


      ## Transaction type


      | status              |

      | ------------------- |

      | SALE                |

      | AUTHORIZE           |

      | THREE_DS            |

      | TOKEN               |

      | PAYOUT              |

      | REFUND              |

      | VOID                |

      | FRAUD_ALERT         |

      | CHARGEBACK          |

      | CHARGEBACK_REVERSAL |

      | RDR                 |

      | RDR_REVERSAL        |


      ## Response Codes


      | code | message                                                     |

      | ---- | ----------------------------------------------------------- |

      | 1000 | Success                                                     |

      | 1200 | Pending                                                     |

      | 1300 | 3DS verification successful (challenged)                    |

      | 1301 | 3DS verification successful (frictionless)                  |

      | 1302 | 3DS verification attempted                                  |

      | 1320 | 3DS verification denied                                     |

      | 1321 | 3DS could not be performed                                  |

      | 1322 | 3DS rejected by issuer                                      |

      | 1323 | 3DS invalid cardholder account number                       |

      | 1324 | 3DS version not supported                                   |

      | 1325 | 3DS timeout                                                 |

      | 1390 | 3DS integration error                                       |

      | 1400 | 3DS is required                                             |

      | 2000 | Decline                                                     |

      | 2001 | Refer to card issuer                                        |

      | 2002 | Do not honor                                                |

      | 2003 | Bank decline                                                |

      | 2004 | Insufficient funds                                          |

      | 2005 | Card not supported                                          |

      | 2006 | Restricted card                                             |

      | 2007 | Over limit                                                  |

      | 2008 | Merchant limit exceeded                                     |

      | 2009 | Invalid transaction                                         |

      | 2010 | Duplicate transaction                                       |

      | 2011 | transaction has already chargeback                          |

      | 2012 | Crypto transaction decline                                  |

      | 2013 | Crypto insufficient funds                                   |

      | 2014 | Crypto smart contract insufficient funds                    |

      | 2015 | Crypto transaction replaced                                 |

      | 2016 | Crypto address is invalid                                   |

      | 2101 | Invalid CVV or expiry date                                  |

      | 2102 | CVV missing                                                 |

      | 2103 | Invalid expiry date                                         |

      | 2130 | 3DS verification denied                                     |

      | 2131 | 3DS could not be performed                                  |

      | 2132 | 3DS rejected by issuer                                      |

      | 2133 | 3DS timeout                                                 |

      | 2138 | 3DS SCA required                                            |

      | 2139 | 3DS integration error                                       |

      | 2140 | Low value rejected                                          |

      | 2141 | Incorrect card data                                         |

      | 2142 | Incorrect data                                              |

      | 2143 | Missing parameters                                          |

      | 2144 | 3DS version not supported                                   |

      | 2200 | Pick up card                                                |

      | 2201 | Pick up card (stolen or fraud)                              |

      | 2202 | Expired card                                                |

      | 2203 | Unsupported card type                                       |

      | 2204 | No such issuer                                              |

      | 2205 | Decline by Card Scheme Advise Code                          |

      | 2299 | Closed account                                              |

      | 2300 | Processor risk                                              |

      | 2301 | Velocity limit exceeded                                     |

      | 2302 | Suspected Fraud                                             |

      | 2309 | Customer blacklisted                                        |

      | 2310 | Card blacklisted                                            |

      | 2311 | IP blacklist                                                |

      | 2312 | Email blacklist                                             |

      | 2313 | BIN blacklist                                               |

      | 2314 | Country blacklist                                           |

      | 2315 | Fraud rule                                                  |

      | 2900 | System malfunction                                          |

      | 2901 | Integration error                                           |

      | 2902 | Processor not supported feature                             |

      | 2903 | Processor malfunction                                       |

      | 2904 | Timeout                                                     |

      | 2905 | Refund is not supported for this method or transaction type |

      | 2906 | Missing payment token                                       |

      | 2907 | Payment type not supported for payment method               |

      | 2908 | Payment token is not valid                                  |

      | 3000 | Unknown error                                               |


      # Card flow


      ## Supported Payment methods


      | name       |

      | ---------- |

      | CARD       |

      | APPLE_PAY  |

      | GOOGLE_PAY |


      ## Supported card schemes


      | name             |

      | ---------------- |

      | VISA             |

      | Mastercard       |

      | Maestro          |

      | Discover         |

      | Diners           |

      | UnionPay         |

      | RuPay            |

      | American Express |

      | JCB              |


      ## Process diagram


      {% img src="/assets/diagram.svg" alt="Process diagram" /%}


      # Alternative payment methods (APM)


      ## Support payment methods


      | name                  |

      | --------------------- |

      | AIRCASH               |

      | AIRTEL                |

      | ALIPAY                |

      | ALIPAY_PLUS           |

      | BANK_APP              |

      | BANCONTACT            |

      | BINANCE_PAY           |

      | BLIK                  |

      | BOLETO                |

      | CARDEXTERNAL          |

      | CODI                  |

      | CRYPTO                |

      | DANA                  |

      | EFECTY                |

      | EPS                   |

      | GIROPAY               |

      | IDEAL                 |

      | INSTANT_BANK_TRANSFER |

      | KAKAO_PAY             |

      | KHIPU                 |

      | LINKAJA               |

      | LOCAL_PAYMENT_METHODS |

      | LOTERICA              |

      | MACH                  |

      | MBWAY                 |

      | MPESA                 |

      | MULTIBANCO            |

      | MYBANK                |

      | NAVERPAY              |

      | NAVER_PAY             |

      | NUPAY                 |

      | OVO                   |

      | OXXOPAY               |

      | PAGOEFECTIVO          |

      | PAY_BY_BANK           |

      | PAY_BY_CASH           |

      | PAYCO                 |

      | PAYCONIQ              |

      | PAYPAL                |

      | PAXUM                 |

      | PICPAY                |

      | PIX                   |

      | PSE                   |

      | QRIS                  |

      | SATISPAY              |

      | SEPA                  |

      | SHOPEEPAY             |

      | SOFORT                |

      | SPEI                  |

      | TODITO                |

      | TOSS                  |

      | UPI                   |

      | WECHAT                |

      | WIRE_TRANSFER         |


      ## Process diagram


      [![](https://mermaid.ink/img/pako:eNqVkkFPAjEQhf_KpCeIgPc9kBhFQiIJkXgxexnbWWnotms7NRLCf7fLsiyKStxTt_O9Ny_T2QrpFIlMBHqLZCXdaXz1WOYW0ncbA7uS_HA4Hs_JyxVazmBmNWtkggo3JVlu2Lae0KunaprqGdwsZiDRmIZobmuv1jeDB4eK_Gg0-oIki8kHk7dooPLuXauanZIlf9IXjLbrRndGJ4thm2Jxhh_bdEEeSWlPkoEd0NHtoCyc_z6RnyPea2NO6D9jLckqqFzgF5Rr6BW6BgMjx9D_TZ70rfw0cHP3_yl3b3o5zIWZlQcriN5AL0QpKQS4hgK16YuBSPUStUqbtq39csErKikXWTqmgVHgXOR2l8hYqdRoojQ7L7ICTaCBwMhuubFSZOwjtdBhWY9UhfbZue6f9ibzZsP3i777BI0fAQw?type=png)](https://mermaid.live/edit#pako:eNqVkkFPAjEQhf_KpCeIgPc9kBhFQiIJkXgxexnbWWnotms7NRLCf7fLsiyKStxTt_O9Ny_T2QrpFIlMBHqLZCXdaXz1WOYW0ncbA7uS_HA4Hs_JyxVazmBmNWtkggo3JVlu2Lae0KunaprqGdwsZiDRmIZobmuv1jeDB4eK_Gg0-oIki8kHk7dooPLuXauanZIlf9IXjLbrRndGJ4thm2Jxhh_bdEEeSWlPkoEd0NHtoCyc_z6RnyPea2NO6D9jLckqqFzgF5Rr6BW6BgMjx9D_TZ70rfw0cHP3_yl3b3o5zIWZlQcriN5AL0QpKQS4hgK16YuBSPUStUqbtq39csErKikXWTqmgVHgXOR2l8hYqdRoojQ7L7ICTaCBwMhuubFSZOwjtdBhWY9UhfbZue6f9ibzZsP3i777BI0fAQw)
  - name: Demo payment page
    description: '[Checkout Overview](https://checkout.upgate.com/demo)'
  - name: Embedded flow
    description: >
      ## Overview


      Embedded components for checkout refer to a collection of ready-made user
      interface elements designed to facilitate the construction of your
      checkout process..


      ## Usage example


      ### Set up the server:


      - Install the packages (axios, express in example code) and import them in
      your code.


      ```

      npm install axios express

      ```


      - Add an endpoint on your server that creates a checkout.
        Setup checkout parameters and set `success_url` and `failure_url` for redirect customer.
        Create `index.js` file with code bellow:

      ```javascript index.js

      const express = require("express");

      const axios = require("axios");

      const PORT = 5000;

      const YOUR_DOMAIN = `http://localhost:${PORT}`;

      const API_KEY = "X-api-key";

      const app = express();

      app.use(express.static("public"));


      app.post("/checkout", async (req, res) => {
        const result = await axios.post(
          "https://api.sandbox.upgate.com/v1/checkout",
          {
            payment_data: {
              ui_mode: "EMBEDDED",
              type: "SALE",
              methods: ["CARD", "GIROPAY", "MBWAY"],
              amount: "20.03",
              currency_code: "EUR",
            },
            customer: {
              merchant_customer_id: "test",
            },
            callback: {
              success_url: `${YOUR_DOMAIN}/index.html?success=true`,
              failure_url: `${YOUR_DOMAIN}/index.html`,
            },
            products: [
              {
                type: "SALE",
                price: 55,
                name: "Test product name for SALE",
                description: "Test product description for SALE",
              },
            ],
          },
          {
            headers: {
              "X-Api-Key": API_KEY,
              "Content-Type": "application/json",
            },
          }
        );
        res.json({ url: result.data.session.redirect_url });
      });

      app.listen(PORT, () => console.log(`Running on port ${YOUR_DOMAIN}`));

      ```


      <br/>


      ### Build a checkout page on the client


      - #### Load Upgate.js
        Leverage Upgate.js to maintain PCI compliance by ensuring that payment information is transmitted directly to Upgate without accessing your server.
        To stay compliant, consistently load Upgate.js from js.upgate.com.
        Avoid incorporating the script into a bundle or hosting it independently.
        Create `./public` folder and create `index.html` with code below:

      ```html index.html

      <html lang="en">
        <head>
          <script type="module" src="https://js.upgate.com/upgate.js"></script>
          <script type="module" src="/main.js"></script>
          <style>
            body {
              min-height: 100vh;
              justify-content: center;
              width: 350px;
              margin: 0 auto;
              display: flex;
              flex-direction: column;
              gap: 32px;
            }
          </style>
        </head>
        <body>
          <div id="payment"></div>
          <button id="buy" onclick="submit()">Buy</button>
        </body>
      </html>

      ```


      <br/>


      - #### Mount Checkout element
        Upon loading your checkout page, promptly initiate a request to the endpoint on your server to generate a new Checkout.
        The URL provided by your endpoint is utilized for rendering the embedded checkout element.
        Create a CheckoutElement and mount it to the element `<div id="payment">` in your payment form.
        This incorporates an iframe containing a dynamic form that showcases configured payment method types available from the Checkout, enabling your customer to choose a payment method.
        The form autonomously gathers the relevant payment details for the chosen payment method type.
        Create `main.js` file with code below in `./public` folder:

      ```javascript main.js

      let upgate;

      const elementId = "payment";

      async function mount() {
        const { url } = await fetch("/checkout", { method: "POST" }).then((res) =>
          res.json()
        );
        upgate.mountPaymentElement(elementId, url);
        upgate.onResult(elementId, console.log); // use this method for handle result
      }

      function submit() {
        upgate.submit(elementId);
      }

      window.onload = async () => {
        upgate = new Upgate();
        mount();
      };

      ```


      Invoke `submit('%elementId%')`, providing the CheckoutElement and a
      `success_url` to specify the destination where Upgate should redirect the
      user upon completing the payment.

      For payments necessitating authentication, Upgate presents a modal for 3D
      Secure authentication or directs the customer to an authentication page,
      contingent on the payment method utilized.

      Following the completion of the authentication process, the customer is
      redirected to the specified `success_url`.


      - #### Handle response after submit
        Pass callback parameter in `upgate.onResult` function for handle `TResult` type object.

      ```typescript

      export type TResult = {
        success: boolean;
        url?: string;
        error_message?: string;
        error_code?: number;
        retry?: boolean;
      };

      ```


      All types of Upgate.js you can find in
      [index.d.ts](https://js.upgate.com/index.d.ts).


      - If `success: true` - payment processed successful.

      - If `success: false; retry: false` - payment was not processed, and form
      must be unmounted with `unmountPaymentElement('payment')`.

      - If `retry: true; success: false` you can submit same form again (form
      not valid for example).

      - If payment was failed user will be redirected to `failure_url` with
      query parameters `?error_code=&error_message=`


      <br/>


      ### Config payment form


      In mountPaymentElement function you can pass third config parameter.


      ```typescript

      declare type TConfig = Partial<{
        theme?: "LIGHT" | "DARK" | "BROWSER";
        onTimeout?: () => void;
      }>;

      ```


      Property `theme` overrides theme type defined in back office, and you can
      call embedded form with dynamically changed theme.

      Callback `onTimeout` will call when form time limit exceed. After timeout
      you need to remount component.

      Theme type `BROWSER` renders theme depending on system theme.


      ```javascript

      upgate.mountPaymentElement("%elementId%", "%checkoutUrl%", { theme:
      "LIGHT" });

      ```


      ## Checkout form timeout


      After 15 minutes, a timeout will occur in the checkout process. The
      handling differs based on whether the form is embedded or non-embedded:


      - For non-embedded form, when the checkout session times out, the user
      will be redirected to the failure URL.

      - For embedded form for handle form timeout you can use timeout callback
      in mount config:


      ```javascript

      upgate.mountPaymentElement("%elementId%", "%checkoutUrl%", {
        theme: "LIGHT",
        onTimeout: handleTimeOutFn,
      });

      ```


      Or call `onTimeout` method after mount with timeout handler function as a
      parameter:


      ```javascript

      upgate.onTimeout("%elementId%", handleTimeOutFn);

      ```


      When timeout handler was called you need to remount payment element.


      ## Decline Code Mapping


      When using the embedded form, the display of errors for customers is
      managed by the merchant. The table below provides examples of the text we,
      as the UpGate provider, recommend using for each code to enhance customers
      experience.


      <br/>


      ### Table of Decline Codes and Messages


      | code                                                       |
      message                                                                                     
      |

      | ---------------------------------------------------------- |
      --------------------------------------------------------------------------------------------
      |

      | 2000                                                       | Your
      transaction was declined. Please try again or use another
      card.                         |

      | 2001, 2002, 2003                                           | Your
      transaction was declined by your bank. Please try again or use another
      card.            |

      | 2004                                                       | Your card
      has insufficient funds. Please try again or use another
      card.                      |

      | 2005, 2006, 2203                                           | Your card
      is not supported. Please try again or use another
      card.                            |

      | 2007                                                       | Your card
      has exceeded its limit. Please check your card and try again or use
      another card.  |

      | 2008, 2009, 2010, 2900, 2901                               | An error
      occurred while processing your card. Try again in a little
      bit.                     |

      | 2101, 2102                                                 | Your card's
      security code is incorrect. Please try again or use another
      card.                |

      | 2130, 2131, 2132, 2138, 2139, 2140, 1320, 1321, 1322, 1390 | Your 3-D
      Secure authentication failed. Please try again or use another
      card.                 |

      | 2202                                                       | Your card
      has expired. Please try again or use another
      card.                                 |

      | 2204, 2299                                                 | Your card
      number is invalid. Please check the card number and try again or use
      another card. |

      | other codes                                                | Your card
      has been declined. Please try again or use another
      card.                           |
  - name: Google Pay
    x-id: Google Pay
    x-displayName: Google Pay™
    description: "## Overview the Google Pay™\n\nGoogle Pay™ is a convenient and secure payment method that allows your customers to quickly and easily make purchases on your website.\n\nTo integrate Google Pay™ \_into Checkout form, we follow the guidelines specified in [Google Pay Android brand guidelines](https://developers.google.com/pay/api/android/guides/brand-guidelines)\_or\_[Google Pay Web brand guidelines](https://developers.google.com/pay/api/web/guides/brand-guidelines).\n\n<br/>\n\n## Setup the Google Pay™\n\nTo setup Google Pay™ into your website, follow these steps:\n\n1. Include the Google Pay™ method in the request as the payment method\n\n```json\n{\n  \"payment_data\": {\n    \"merchant_payment_id\": \"P_001\",\n    \"methods\": [\"CARD\", \"GOOGLE_PAY\"],\n    \"type\": \"SALE\",\n    \"amount\": 9.99,\n    \"currency_code\": \"EUR\"\n  },\n  \"customer\": {\n    \"merchant_customer_id\": \"U_001\"\n  },\n  \"callback\": {\n    \"success_url\": \"https://example.com/success\",\n    \"failure_url\": \"https://example.com/failure\"\n  },\n  \"products\": [\n    {\n      \"type\": \"SALE\",\n      \"name\": \"Test product name\",\n      \"description\": \"Test product description\",\n      \"price\": 9.99\n    }\n  ]\n}\n```\n\n2. Configure Transaction Routing for Google Pay™ method, specify card schemes, currency and processor\n\n3. Add information to your site that you support the Google Pay™ payment method and that you accept the terms defined in the [Google Pay API Terms of Service](https://payments.developers.google.com/terms/sellertos).\n\n## Additional Guidelines and Requirements\n\n### Understand Google Pay Integration:\n\n- Familiarize yourself with the [Google Pay overview for websites documentation](https://developers.google.com/pay/api/web/overview?authuser=2).\n\n### Integration Checklist for Web:\n\n- Follow the [Google Pay Integration Checklist](https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist?authuser=2) to ensure all integration steps are covered.\n- Check the [Google Pay Developer Integration Checklist](https://developers.google.com/pay/api/processors/guides/test-and-validation/developer-documentation-checklist?hl=en) for additional details.\n\n### Brand Guidelines:\n\n- Any references or referrals to Google Pay must comply with the [brand guidelines for websites](https://developers.google.com/pay/api/web/guides/brand-guidelines?authuser=2).\n\n### Configure Gateway Settings:\n\n- Use the `\"upgate\"` value for the `gateway` property and enter your unique `gatewayMerchantId`. To obtain your `gatewayMerchantId`, contact our team at info@upgate.com. If you would like to use your own Google merchant id, you need to register for a merchant id at Google, refer to [setup Google Account guide](https://developers.google.com/pay/api/web/guides/setup) and send it to you team at info@upgate.com.\n\n### Billing Address Requirements:\n\n- The customer billing address does not need to be sent if you use the UpGate Checkout page.\n\n### Accepted Payment Card Types:\n\n- Google Pay outlines accepted payment card types in the [Google Pay Tutorial](https://developers.google.com/pay/api/web/guides/tutorial).\n\n### Supported Card Networks:\n\n- Depending on the processor, the international card networks Visa, MasterCard, Diners and American Express are supported.\n\n### 3DS Authentication:\n\n- Google Pay integration via the UpGate Checkout page supports processing with and without 3DS authentication. To use 3DS, enable 3DS for `\"PAN_ONLY\"` and contact our team at info@upgate.com.\n\n### Authorization Methods by Country of Settlement:\n\n- Default authorization methods are PAN_ONLY and 3DS (3-D Secure). For specific country requirements, contact our team at info@upgate.com."
  - name: Override theme
    description: >
      ## Customizing Payment Form Appearance


      The payment form offers visual customization options, enabling you to
      align its design with your website’s style. While the overall layout of
      each form remains consistent, you can adjust elements like colors, fonts,
      borders, padding, and more.


      1. Begin by selecting a theme.

      2. Adjust the theme using customizable variables.

      3. If necessary, refine specific components and states through theme
      rules.


      In a checkout request, you can override the payment form settings
      configured in the back office by defining the
      [`payment_form_override`](/openapi/sale-request-examples/checkout_request#sale-request-examples/checkout_request/t=request&path=payment_form_override)
      object.


      -
      [`color`](/openapi/sale-request-examples/checkout_request#sale-request-examples/checkout_request/t=request&path=payment_form_override/color):
      This property allows you to define payment button color.

      -
      [`theme_type`](/openapi/sale-request-examples/checkout_request#sale-request-examples/checkout_request/t=request&path=payment_form_override/theme_type):
      This property allows you to define theme.

      -
      [`theme_variables`](/openapi/sale-request-examples/checkout_request#sale-request-examples/checkout_request/t=request&path=payment_form_override/theme_variables):
      This property enables you to override specific CSS variables to define
      custom styles for the payment form.

      -
      [`theme_rules`](/openapi/sale-request-examples/checkout_request#sale-request-examples/checkout_request/t=request&path=payment_form_override/theme_rules):
      This property allows you to define additional custom CSS rules to further
      tailor the design.


      ## Themes


      Begin customizing the payment form by selecting one of the available
      themes below:


      - LIGHT

      - DARK

      - BROWSER


      Note: `BROWSER` theme it's a automatically switch theme between `LIGHT`
      and `DARK` depends of system OS color scheme.


      ## Variables


      The
      [`theme_variables`](/openapi/sale-request-examples/checkout_request#sale-request-examples/checkout_request/t=request&path=payment_form_override/theme_variables)
      property is used to override default CSS variables of the payment form.
      This allows you to quickly and easily customize specific aspects of the
      design. The variables option functions similarly to CSS variables. You can
      assign CSS values to each variable and reference them using the
      `var(--myVariable)` syntax. Additionally, you can use your browser’s DOM
      explorer to inspect the applied styles in the resulting DOM.


      ### Commonly used variables


      | Variable        | Description                                           
      |

      | --------------- | ------------------------------------------------------
      |

      | primaryColor    | Defines the primary color used across the application.
      |

      | backgroundColor | Background color of the component.                    
      |

      | formBackground  | Background color of the form.                         
      |

      | fontSizeBase    | Base font size.                                       
      |

      | fontFamily      | Font family used across the application.              
      |

      | loaderColor     | Color for loader.                                     
      |


      ### Rest Variables


      | Variable                            |
      Description                                                |

      | ----------------------------------- |
      ---------------------------------------------------------- |

      | maxWidth                            | Maximum width of the container or
      component.               |

      | primaryColorHover                   | Primary color when
      hovered.                                |

      | primaryColorActive                  | Primary color when
      active.                                 |

      | payBtnColor                         | Color of the payment
      button.                               |

      | payBtnColorDisabled                 | Color of the payment button when
      disabled.                 |

      | payBtnFontSize                      | Font size for the payment
      button.                          |

      | payBtnLineHeight                    | Line height for the payment
      button.                        |

      | payBtnPadding                       | Padding for the payment
      button.                            |

      | textColor                           | Default color for
      text.                                    |

      | formBorderColor                     | Border color for
      forms.                                    |

      | formPadding                         | Padding inside
      forms.                                      |

      | formBorderRadius                    | Border radius for
      forms.                                   |

      | m_formPadding                       | Mobile-specific padding for
      forms.                         |

      | inputBackground                     | Background color for input
      fields.                         |

      | inputBorderColor                    | Border color for input
      fields.                             |

      | inputBorderColorHover               | Border color for input fields when
      hovered.                |

      | inputBorderColorFocus               | Border color for input fields when
      focused.                |

      | inputBorderColorError               | Border color for input fields in
      error state.              |

      | inputBorderWidth                    | Border width for input
      fields.                             |

      | inputBorderWidthHover               | Border width for input fields when
      hovered.                |

      | inputBorderWidthFocus               | Border width for input fields when
      focused.                |

      | inputBorderWidthError               | Border width for input fields in
      error state.              |

      | borderRadius                        | Border radius applied across
      components.                   |

      | inputPadding                        | Padding for input
      fields.                                  |

      | inputFontSize                       | Font size for input
      fields.                                |

      | inputLineHeight                     | Line height for input
      fields.                              |

      | inputFontWeight                     | Font weight for input
      fields.                              |

      | placeHolderColor                    | Color for placeholder text in
      input fields.                |

      | cardBackground                      | Background color for
      cards.                                |

      | cardBorderColor                     | Border color for
      cards.                                    |

      | cardBorderRadius                    | Border radius for
      cards.                                   |

      | cardPadding                         | Padding for
      cards.                                         |

      | cardSelectColorSelected             | Color of selected card during
      selection.                   |

      | inputIconColor                      | Color of icons inside input
      fields.                        |

      | descriptionColor                    | Color for descriptive
      text.                                |

      | dividerColor                        | Color of dividers or
      separators.                           |

      | fontSizeXl                          | Font size for extra-large
      text.                            |

      | fontSizeLg                          | Font size for large
      text.                                  |

      | fontSizeSm                          | Font size for small
      text.                                  |

      | fontSizeXs                          | Font size for extra-small
      text.                            |

      | fontSize2Xs                         | Font size for ultra-small
      text.                            |

      | lineHeight                          | Line height for
      text.                                      |

      | fontCss                             | Custom CSS applied to
      fonts.                               |

      | lineHeightXl                        | Line height for extra-large
      text.                          |

      | lineHeightLg                        | Line height for large
      text.                                |

      | fontWeight                          | General font weight for
      text.                              |

      | buttonPadding                       | Padding for
      buttons.                                       |

      | buttonFontWeight                    | Font weight for button
      text.                               |

      | buttonBackground                    | Background color for
      buttons.                              |

      | buttonFontSize                      | Font size for
      buttons.                                     |

      | buttonLineHeight                    | Line height for button
      text.                               |

      | buttonColor                         | Text color for
      buttons.                                    |

      | buttonBackgroundHover               | Background color for buttons when
      hovered.                 |

      | buttonColorHover                    | Text color for buttons when
      hovered.                       |

      | buttonBackgroundActive              | Background color for buttons when
      active.                  |

      | buttonColorActive                   | Text color for buttons when
      active.                        |

      | linkColor                           | Color for
      hyperlinks.                                      |

      | fontWeightLight                     | Font weight for lighter text
      styles.                       |

      | fontWeightMedium                    | Font weight for medium text
      styles.                        |

      | fontWeightBold                      | Font weight for bold text
      styles.                          |

      | labelFontSize                       | Font size for
      labels.                                      |

      | labelLineHeight                     | Line height for
      labels.                                    |

      | labelFontWeight                     | Font weight for
      labels.                                    |

      | labelColor                          | Color for
      labels.                                          |

      | errorColor                          | Color for error messages or
      indicators.                    |

      | selectBackgroundHover               | Background color for select
      elements when hovered.         |

      | selectBackgroundActive              | Background color for select
      elements when active.          |

      | cardSelectDeleteColor               | Color for delete option in card
      selection.                 |

      | transitionDuration                  | Duration for transition
      effects.                           |

      | transitionStyle                     | Style for transition
      effects.                              |

      | buttonOutlineColor                  | Outline color for
      buttons.                                 |

      | buttonOutlineBorderColor            | Border color for button
      outlines.                          |

      | buttonOutlineBorderWidth            | Border width for button
      outlines.                          |

      | buttonOutlineBackgroundHover        | Background color for outlined
      buttons when hovered.        |

      | buttonOutlineBackgroundActive       | Background color for outlined
      buttons when active.         |

      | tabBorderRadius                     | Border radius for
      tabs.                                    |

      | tabPadding                          | Padding for
      tabs.                                          |

      | tabHeight                           | Height for
      tabs.                                           |

      | tabColor                            | Text color for
      tabs.                                       |

      | tabBackground                       | Background color for
      tabs.                                 |

      | tabBorderColor                      | Border color for
      tabs.                                     |

      | tabBorderColorActive                | Border color for tabs when
      active.                         |

      | tabBackgroundActive                 | Background color for tabs when
      active.                     |

      | tabColorSelected                    | Text color for selected
      tabs.                              |

      | tabBackgroundSelected               | Background color for selected
      tabs.                        |

      | tabBorderColorSelected              | Border color for selected
      tabs.                            |

      | tabBorderColorHover                 | Border color for tabs when
      hovered.                        |

      | tabBackgroundHover                  | Background color for tabs when
      hovered.                    |

      | tabBorderWidth                      | Border width for
      tabs.                                     |

      | tabBorderWidthHover                 | Border width for tabs when
      hovered.                        |

      | tabBorderWidthActive                | Border width for tabs when
      active.                         |

      | tabBorderWidthSelected              | Border width for selected
      tabs.                            |

      | tabFontWeight                       | Font weight for
      tabs.                                      |

      | tabFontWeightSelected               | Font weight for selected
      tabs.                             |

      | languageSelectColor                 | Color for language selection
      dropdown.                     |

      | subscriptionColor                   | Color used for
      subscription-related text or buttons.       |

      | subscriptionFontSize                | Font size for subscription-related
      text.                   |

      | subscriptionLineHeight              | Line height for
      subscription-related text.                 |

      | subscriptionFontWeight              | Font weight for
      subscription-related text.                 |

      | buttonColorDisabled                 | Text color for disabled
      buttons.                           |

      | buttonBackgroundDisabled            | Background color for disabled
      buttons.                     |

      | footerColor                         | Color of text in the
      footer.                               |

      | footerIconColor                     | Color of icons in the
      footer.                              |

      | footerFontWeight                    | Font weight for text in the
      footer.                        |

      | footerFontSize                      | Font size for text in the
      footer.                          |

      | footerLineHeight                    | Line height for text in the
      footer.                        |

      | footerPadding                       | Padding for the
      footer.                                    |

      | m_footerPadding                     | Mobile-specific padding for the
      footer.                    |

      | badgeFontSize                       | Font size for
      badges.                                      |

      | badgeBackground                     | Background color for
      badges.                               |

      | badgeColor                          | Text color for
      badges.                                     |

      | methodIconWidth                     | Width for payment method
      icons.                            |

      | methodIconHeight                    | Height for payment method
      icons.                           |

      | iconSize                            | General size for
      icons.                                    |

      | searchInputBackground               | Background color for search
      inputs.                        |

      | searchInputBackgroundHover          | Background color for search inputs
      when hovered.           |

      | messageInfoColor                    | Text color for informational
      messages.                     |

      | messageInfoBorderColor              | Border color for informational
      messages.                   |

      | messageInfoBackground               | Background color for informational
      messages.               |

      | messageErrorColor                   | Text color for error
      messages.                             |

      | messageErrorBorderColor             | Border color for error
      messages.                           |

      | messageErrorBackground              | Background color for error
      messages.                       |

      | currencySelectBackground            | Background color for the currency
      select.                  |

      | currencySelectBorderColor           | Border color for the currency
      select.                      |

      | currencySelectIndicatorBackground   | Background color for the indicator
      in the currency select. |

      | currencySelectIndicatorBorderRadius | Border radius for the indicator in
      the currency select.    |


      ## Rules


      The
      [`theme_rules`](/openapi/sale-request-examples/checkout_request#sale-request-examples/checkout_request/t=request&path=payment_form_override/theme_rules)
      option is a mapping of CSS-like selectors to CSS properties, enabling
      precise customization of individual components. Once you’ve defined your
      theme and variables, you can use these rules to seamlessly align the
      payment form with your website’s design.


      Selectors in a rule can target any public class names within the payment
      form, as well as supported states, pseudo-classes, and pseudo-elements
      associated with each class. For example, the following are valid
      selectors: `.form-control > input`
  - name: Subscription request examples
    x-displayName: Examples
    x-id: Subscription request examples
    description: ' '
  - name: Sale request examples
    x-displayName: Example
    x-id: Sale request example
    description: ' '
x-tagGroups:
  - name: ''
    tags:
      - Changelog
      - Introduction
      - Demo payment page
  - name: Sale request
    tags:
      - Sale request examples
  - name: Subscription requests
    tags:
      - Subscription request examples
  - name: Other
    tags:
      - Google Pay
      - Override theme
      - Other request examples
      - Embedded flow
paths:
  /checkout:
    post:
      tags:
        - Sale request examples
      operationId: checkout_request
      summary: Sale request
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/checkoutRequest'
            examples:
              checkoutRequest:
                $ref: '#/components/examples/checkoutRequest'
              overrideThemeCheckoutRequest:
                $ref: '#/components/examples/overrideThemeCheckoutRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/checkoutResponse'
              examples:
                checkoutResponse:
                  $ref: '#/components/examples/checkoutResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Checkout notification
              operationId: checkoutPostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successSalePostback:
                        $ref: '#/components/examples/successSalePostback'
                      successSale3dPostback:
                        $ref: '#/components/examples/successSale3dPostback'
                      errorSalePostback:
                        $ref: '#/components/examples/errorSalePostback'
                      success3dSecureSalePostback:
                        $ref: '#/components/examples/success3dSecureSalePostback'
                      decline3dSecureSalePostback:
                        $ref: '#/components/examples/decline3dSecureSalePostback'
                      chargebackPostback:
                        $ref: '#/components/examples/chargebackPostback'
                      chargebackReversalPostback:
                        $ref: '#/components/examples/chargebackReversalPostback'
                      fraudAlertPostback:
                        $ref: '#/components/examples/fraudAlertPostback'
              responses:
                '200':
                  description: OK
  '/checkout ':
    post:
      operationId: subscription_request
      tags:
        - Subscription request examples
      summary: Subscription request
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/subscriptionRequest'
            examples:
              subscriptionRequest:
                $ref: '#/components/examples/subscriptionCheckoutRequest'
              trialSubscriptionRequest:
                $ref: '#/components/examples/trialSubscriptionCheckoutRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscriptionResponse'
              examples:
                subscriptionResponse:
                  $ref: '#/components/examples/subscriptionCheckoutResponse'
                trialSubscriptionResponse:
                  $ref: '#/components/examples/trialSubscriptionCheckoutResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Checkout notification
              operationId: checkoutSubscriptionPostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successSalePostback:
                        $ref: '#/components/examples/successSalePostback'
                      successSale3dPostback:
                        $ref: '#/components/examples/successSale3dPostback'
                      errorSalePostback:
                        $ref: '#/components/examples/errorSalePostback'
                      success3dSecureSalePostback:
                        $ref: '#/components/examples/success3dSecureSalePostback'
                      decline3dSecureSalePostback:
                        $ref: '#/components/examples/decline3dSecureSalePostback'
                      chargebackPostback:
                        $ref: '#/components/examples/chargebackPostback'
                      chargebackReversalPostback:
                        $ref: '#/components/examples/chargebackReversalPostback'
                      fraudAlertPostback:
                        $ref: '#/components/examples/fraudAlertPostback'
              responses:
                '200':
                  description: OK
  /authorize:
    post:
      tags:
        - Other request examples
      operationId: authorize_request
      summary: Authorize request (deprecated)
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentRequest'
            examples:
              authorizeRequest:
                $ref: '#/components/examples/authorizeRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentResponse'
              examples:
                '200':
                  $ref: '#/components/examples/authorizeResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Transaction notification
              operationId: authorizePostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successAuthorizePostback:
                        $ref: '#/components/examples/successAuthorizePostback'
                      successAuthorize3dPostback:
                        $ref: '#/components/examples/successAuthorize3dPostback'
                      errorAuthorizePostback:
                        $ref: '#/components/examples/errorAuthorizePostback'
                      success3dSecureAuthorizePostback:
                        $ref: '#/components/examples/success3dSecureAuthorizePostback'
                      decline3dSecureAuthorizePostback:
                        $ref: '#/components/examples/decline3dSecureAuthorizePostback'
              responses:
                '200':
                  description: OK
  /mit-sale:
    post:
      tags:
        - Other request examples
      summary: MIT Sale request
      operationId: mit_sale_request
      parameters:
        - $ref: '#/components/parameters/mode'
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mitPaymentRequest'
            examples:
              mitSaleRequest:
                $ref: '#/components/examples/mitSaleRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/paymentResponse'
                  - $ref: '#/components/schemas/transactionPostback'
              examples:
                asyncMitSaleResponse:
                  $ref: '#/components/examples/asyncMitSaleResponse'
                syncMitSaleResponse:
                  $ref: '#/components/examples/syncMitSaleResponse'
                syncMitSaleResponseError:
                  $ref: '#/components/examples/syncMitSaleResponseError'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Transaction notification
              operationId: mitSalePostback
              description: |
                Only when mode=async this postback will be send
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successMitSalePostback:
                        $ref: '#/components/examples/successMitSalePostback'
                      errorMitSalePostback:
                        $ref: '#/components/examples/errorMitSalePostback'
              responses:
                '200':
                  description: OK
  /mit-authorize:
    post:
      tags:
        - Other request examples
      operationId: mit_authorize_request
      summary: MIT Authorize request
      parameters:
        - $ref: '#/components/parameters/mode'
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/mitPaymentRequest'
            examples:
              mitAuthorizeRequest:
                $ref: '#/components/examples/mitAuthorizeRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/paymentResponse'
                  - $ref: '#/components/schemas/transactionPostback'
              examples:
                asyncMitAuthorizeResponse:
                  $ref: '#/components/examples/asyncMitAuthorizeResponse'
                syncMitAuthorizeResponse:
                  $ref: '#/components/examples/syncMitAuthorizeResponse'
                syncMitAuthorizeResponseError:
                  $ref: '#/components/examples/syncMitAuthorizeResponseError'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Transaction notification
              operationId: mitAuthorizePostback
              description: |
                Only when mode=async this postbacks will be send.
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successMitAuthorizePostback:
                        $ref: '#/components/examples/successMitAuthorizePostback'
                      errorMitAuthorizePostback:
                        $ref: '#/components/examples/errorMitAuthorizePostback'
              responses:
                '200':
                  description: OK
  /recurring:
    post:
      tags:
        - Other request examples
      operationId: recurring
      summary: Recurring transaction
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentRequest'
            examples:
              recurringRequest:
                $ref: '#/components/examples/recurringRequest'
              trialRecurringRequest:
                $ref: '#/components/examples/trialRecurringRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentResponse'
              examples:
                recurringResponse:
                  $ref: '#/components/examples/recurringResponse'
                trialRecurringResponse:
                  $ref: '#/components/examples/trialRecurringResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Transaction notification
              operationId: recurringPostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successRecurringTransactionPostback:
                        $ref: >-
                          #/components/examples/successRecurringTransactionPostback
                      successRecurringSubscriptionPostback:
                        $ref: >-
                          #/components/examples/successRecurringSubscriptionPostback
                      successTrialRecurringTransactionPostback:
                        $ref: >-
                          #/components/examples/successTrialRecurringTransactionPostback
                      successTrialRecurringSubscriptionPostback:
                        $ref: >-
                          #/components/examples/successTrialRecurringSubscriptionPostback
                      errorRecurringTransactionPostback:
                        $ref: >-
                          #/components/examples/errorRecurringTransactionPostback
                      errorTrialRecurringTransactionPostback:
                        $ref: >-
                          #/components/examples/errorTrialRecurringTransactionPostback
                      successRebillTransactionPostback:
                        $ref: '#/components/examples/successRebillTransactionPostback'
                      successRebillSubscriptionPostback:
                        $ref: >-
                          #/components/examples/successRebillSubscriptionPostback
                      errorRebillTransactionPostback:
                        $ref: '#/components/examples/errorRebillTransactionPostback'
                      errorRebillSubscriptionPostback:
                        $ref: '#/components/examples/errorRebillSubscriptionPostback'
              responses:
                '200':
                  description: OK
          /merchant-subscriptions:
            post:
              summary: Notifications about new subscriptions
              operationId: subscriptionPostback
              description: >
                When this type of notification has been enabled in merchant
                postback config
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/subscriptionPostback'
                    examples:
                      subscriptionPostback:
                        $ref: '#/components/examples/enableSubscriptionPostback'
              responses:
                '200':
                  description: OK
  /subscription:
    patch:
      tags:
        - Subscription request examples
      operationId: updateSubscriptionByMerchantProductId
      summary: Update subscription by merchant product id
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
        - $ref: '#/components/parameters/merchantProductId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/changeSubscriptionStatus'
            examples:
              enableSubscription:
                $ref: '#/components/examples/enableSubscription'
              disableSubscription:
                $ref: '#/components/examples/disableSubscription'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscriptionPostback'
              examples:
                enableSubscriptionResponse:
                  $ref: '#/components/examples/enableSubscriptionResponse'
                disableSubscriptionResponse:
                  $ref: '#/components/examples/disableSubscriptionResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
    get:
      tags:
        - Subscription request examples
      operationId: getSubscriptionByFilters
      summary: Get subscription by transaction ID
      parameters:
        - $ref: '#/components/parameters/transactionId'
        - $ref: '#/components/parameters/page'
        - $ref: '#/components/parameters/size'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscriptionListResponse'
              examples:
                subscriptionListResponse:
                  $ref: '#/components/examples/subscriptionListResponse'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
  /subscription/{subscriptionId}:
    get:
      tags:
        - Subscription request examples
      operationId: getSubscriptionBySubscriptionId
      summary: Get subscription by subscription id
      parameters:
        - $ref: '#/components/parameters/subscriptionId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscriptionPostback'
              examples:
                enableSubscriptionResponse:
                  $ref: '#/components/examples/enableSubscriptionResponse'
                disableSubscriptionResponse:
                  $ref: '#/components/examples/disableSubscriptionResponse'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error2'
              examples:
                '404':
                  $ref: '#/components/examples/404'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error2'
              examples:
                '500':
                  $ref: '#/components/examples/500_2'
    patch:
      tags:
        - Subscription request examples
      operationId: updateSubscriptionBySubscriptionId
      summary: Update subscription by subscription id
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
        - $ref: '#/components/parameters/subscriptionId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/changeSubscriptionStatus'
            examples:
              enableSubscription:
                $ref: '#/components/examples/enableSubscription'
              disableSubscription:
                $ref: '#/components/examples/disableSubscription'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subscriptionPostback'
              examples:
                enableSubscriptionResponse:
                  $ref: '#/components/examples/enableSubscriptionResponse'
                disableSubscriptionResponse:
                  $ref: '#/components/examples/disableSubscriptionResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-subscriptions:
            post:
              summary: Notifications about new subscriptions
              operationId: changeSubscriptionStatusPostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/subscriptionPostback'
                    examples:
                      enableSubscriptionPostback:
                        $ref: '#/components/examples/enableSubscriptionPostback'
                      disableSubscriptionPostback:
                        $ref: '#/components/examples/disableSubscriptionPostback'
              responses:
                '200':
                  description: OK
  /token:
    post:
      tags:
        - Other request examples
      operationId: token_request
      summary: Token request
      description: Request to create token
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/tokenRequest'
            examples:
              saleRequest:
                $ref: '#/components/examples/tokenRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/tokenResponse'
              examples:
                saleResponse:
                  $ref: '#/components/examples/tokenResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Transaction notification
              operationId: tokenPostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successSalePostback:
                        $ref: '#/components/examples/successTokenPostback'
              responses:
                '200':
                  description: OK
  /payout:
    post:
      tags:
        - Other request examples
      operationId: payout_request
      summary: Payout request
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/request'
            examples:
              cardPayout:
                $ref: '#/components/examples/cardPayoutRequest'
              cryptoPayout:
                $ref: '#/components/examples/cryptoPayoutRequest'
              sepaPayout:
                $ref: '#/components/examples/sepaPayoutRequest'
              paxumPayout:
                $ref: '#/components/examples/paxumPayoutRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/response'
              examples:
                payoutResponse:
                  $ref: '#/components/examples/response'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Transaction notification
              operationId: payoutPostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successPayoutPostback:
                        $ref: '#/components/examples/successPostback'
              responses:
                '200':
                  description: OK
  /sale:
    post:
      tags:
        - Other request examples
      operationId: sale_request
      summary: Sale request (deprecated)
      parameters:
        - $ref: '#/components/parameters/idempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentRequest'
            examples:
              saleRequest:
                $ref: '#/components/examples/saleRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentResponse'
              examples:
                saleResponse:
                  $ref: '#/components/examples/saleResponse'
        '400':
          description: Request validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '400':
                  $ref: '#/components/examples/400'
        '401':
          description: Authorization error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '401':
                  $ref: '#/components/examples/401'
        '429':
          description: Too many requests error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '429':
                  $ref: '#/components/examples/429'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/errorWrapper'
              examples:
                '500':
                  $ref: '#/components/examples/500'
      callbacks:
        postback:
          /merchant-postbacks:
            post:
              summary: Transaction notification
              operationId: salePostback
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/transactionPostback'
                    examples:
                      successSalePostback:
                        $ref: '#/components/examples/successSalePostback'
                      successSale3dPostback:
                        $ref: '#/components/examples/successSale3dPostback'
                      errorSalePostback:
                        $ref: '#/components/examples/errorSalePostback'
                      success3dSecureSalePostback:
                        $ref: '#/components/examples/success3dSecureSalePostback'
                      decline3dSecureSalePostback:
                        $ref: '#/components/examples/decline3dSecureSalePostback'
                      chargebackPostback:
                        $ref: '#/components/examples/chargebackPostback'
                      chargebackReversalPostback:
                        $ref: '#/components/examples/chargebackReversalPostback'
                      fraudAlertPostback:
                        $ref: '#/components/examples/fraudAlertPostback'
              responses:
                '200':
                  description: OK
components:
  securitySchemes:
    X-Api-Key:
      type: apiKey
      in: header
      name: X-Api-Key
  parameters:
    idempotencyKey:
      schema:
        type: string
      name: X-Idempotency-Key
      in: header
      required: false
      description: >
        The system supports the query deduplication mechanism. 

        Any system-wide merchant's request after the first one with 

        the same `X-Idempotency-Key` will return an error.

        For example, if you have retrying mechanism for payouts and you want 

        to avoid double sending, you can put header with value
        payout_{your_payout_id}
    mode:
      name: mode
      in: query
      required: false
      schema:
        type: string
        default: ASYNC
        enum:
          - SYNC
          - ASYNC
    transactionId:
      name: transaction_id
      in: query
      required: false
      schema:
        type: string
        example: 2U5T2MIX22EK3
    page:
      name: page
      in: query
      required: false
      schema:
        minimum: 1
        type: integer
        format: int32
        default: 1
        example: 1
    size:
      name: size
      in: query
      required: false
      schema:
        maximum: 100
        minimum: 1
        type: integer
        format: int32
        default: 100
        example: 100
    merchantProductId:
      name: merchant_product_id
      in: query
      required: true
      schema:
        type: string
        example: 2JZGULPNK27K2
    subscriptionId:
      name: subscriptionId
      in: path
      required: true
      schema:
        type: string
        example: 2E2CL5R3KC7K3
  schemas:
    paymentData:
      type: object
      properties:
        type:
          type: string
          enum:
            - SALE
        methods:
          type: array
          items:
            type: string
          description: >
            Supported Payment methods can be found
            [here](/openapi/section/card-flow/supported-payment-methods) for
            cards and
            [here](/openapi/section/alternative-payment-methods-(apm)/support-payment-methods)
            for alternative payment methods.

            Please note that the payment methods can be empty, in this case
            payment methods would be taken from the back office configuration.

            In case you are using Google Pay or Apple Pay, Card method needs to
            be included as well, e.g. "APPLE_PAY", "CARD" or "GOOGLE_PAY",
            "CARD"
        amount:
          type: number
        currency_code:
          type: string
          description: Currency code (ISO 4217)
          pattern: ^[A-Z]{3}$
        forced_3d:
          type: boolean
        shop_name:
          type: string
          minLength: 1
          maxLength: 128
        shop_url:
          type: string
          pattern: ^https://
          minLength: 1
          maxLength: 128
        merchant_payment_id:
          type: string
      required:
        - type
        - amount
        - currency_code
    checkoutProduct:
      properties:
        merchant_product_id:
          type: string
          minLength: 1
          maxLength: 128
        type:
          type: string
          enum:
            - SALE
        price:
          type: number
        name:
          type: string
        description:
          type: string
      required:
        - type
        - price
        - name
    paymentFormOverride:
      type: object
      properties:
        color:
          description: >-
            [Override the
            color](/openapi/section/customizing-payment-form-appearance) for the
            payment form.
          type: string
          pattern: ^#[0-9a-fA-F]{6}$
        theme_type:
          description: '[Override the theme](/openapi/section/themes) for the payment form.'
          type: string
          enum:
            - LIGHT
            - DARK
            - BROWSER
        theme_variables:
          type: object
          description: >-
            [Override CSS variables](/openapi/section/variables) for the payment
            form.
        theme_rules:
          type: object
          description: '[Override CSS rules](/openapi/section/rules) for the payment form.'
    taxOverride:
      type: object
      properties:
        percentage:
          description: Override Tax percentage
          type: string
          minimum: 0.01
          maximum: 100
        type:
          description: Override Tax type
          type: string
          enum:
            - INCLUDED
            - ON_TOP
        label:
          description: Override Tax label
          type: string
          enum:
            - TAX
            - VAT
            - GST
            - SALES_TAX
    checkoutRequest:
      type: object
      properties:
        payment_data:
          anyOf:
            - type: object
              title: Payment data
              $ref: '#/components/schemas/paymentData'
            - type: object
              title: Payment data embedded
              $ref: '#/components/schemas/paymentData'
              properties:
                ui_mode:
                  description: use for [embedded flow](/openapi/embedded-flow)
                  type: string
                  enum:
                    - EMBEDDED
        customer:
          type: object
          properties:
            merchant_customer_id:
              type: string
            email:
              type: string
            language:
              type: string
              pattern: ^[a-z]{2}-[a-z]{2}$
            country_code:
              type: string
              description: Country Code (ISO 3166-2)
              pattern: ^[A-Z]{2}$
          required:
            - merchant_customer_id
        callback:
          type: object
          description: >-
            Specifies the URLs to which the customer will be redirected after
            completing a payment transaction. The *success_url* is used for
            redirection upon successful payment, and the *failure_url* is used
            in case of payment failure.
          properties:
            success_url:
              type: string
              minLength: 1
              maxLength: 512
            failure_url:
              type: string
              minLength: 1
              maxLength: 512
          required:
            - success_url
            - failure_url
        products:
          type: array
          items:
            type: object
            title: Sale product
            $ref: '#/components/schemas/checkoutProduct'
        additional_info:
          type: object
          properties:
            payment_token_id:
              type: string
            crypto_network:
              type: string
            crypto_address:
              type: string
            crypto_withdrawal_address:
              type: string
            email:
              type: string
            customer_full_name:
              type: string
            phone:
              type: string
        payment_form_override:
          description: >-
            [Customizing Payment Form
            Appearance.](/openapi/section/customizing-payment-form-appearance) 
            All these parameters will override existing configuration in Upgate
            back office if any
          $ref: '#/components/schemas/paymentFormOverride'
        tax_override:
          description: >-
            All these parameters will override existing Tax Rules configuration
            in Upgate back office
          $ref: '#/components/schemas/taxOverride'
      required:
        - payment_data
        - customer
        - callback
        - products
    session:
      properties:
        created_at:
          type: string
          minLength: 1
          maxLength: 64
          description: UTC date time format
        expires_at:
          type: string
          minLength: 1
          maxLength: 64
          description: UTC date time format
        redirect_url:
          type: string
          minLength: 1
          maxLength: 2048
      required:
        - created_at
        - expires_at
        - redirect_url
    checkoutResponse:
      allOf:
        - $ref: '#/components/schemas/checkoutRequest'
      required:
        - id
        - created_at
        - merchant_id
        - session
      properties:
        id:
          type: string
        created_at:
          type: string
        merchant_id:
          type: string
        session:
          $ref: '#/components/schemas/session'
    error:
      title: error
      properties:
        error_code:
          type: string
          enum:
            - INVALID_REQUEST_PARAMETER
            - INVALID_REQUEST
            - INTERNAL_ERROR
            - TOO_MANY_REQUESTS
            - NOT_FOUND
        error_message:
          type: string
      required:
        - error_code
        - error_message
    errorWrapper:
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/error'
    transactionDetails:
      properties:
        three_ds_authentication_value:
          type: string
          description: Only for 3ds postback
        three_ds_processor:
          type: string
          description: Only for 3ds postback
        three_ds_server_transaction_id:
          type: string
          description: Only for 3ds postback
        three_ds_eci:
          type: string
          description: Only for 3ds postback
        three_ds_status:
          type: string
          description: Only for 3ds postback
        three_ds_challenge_type:
          type: string
          description: Only for 3ds postback
        three_ds_version:
          type: string
          description: Only for 3ds postback
        processor_merchant_account_id:
          type: string
        processor_transaction_id:
          type: string
        processor:
          type: string
        processor_response_code:
          type: string
        processor_response_text:
          type: string
          description: Response text from processor
        cascade_attempt:
          type: string
          description: Sequential number of the cascading attempt to payment processors
        has_been_cascaded:
          type: boolean
          description: Indicates whether cascading was performed
        arn:
          type: string
        reference_transaction_id:
          type: string
      required:
        - processor
        - processor_response_code
    paymentContext:
      properties:
        browser_user_agent:
          type: string
          minLength: 1
          maxLength: 2048
        browser_screen_height:
          type: string
          minLength: 1
          maxLength: 64
        browser_color_depth:
          type: string
          minLength: 1
          maxLength: 64
        browser_language:
          type: string
          minLength: 1
          maxLength: 64
        browser_timezone_offset:
          type: string
          minLength: 1
          maxLength: 64
        browser_screen_width:
          type: string
          minLength: 1
          maxLength: 64
        challenge_window_size:
          type: string
          minLength: 1
          maxLength: 64
        browser_has_js_enabled:
          type: string
          minLength: 1
          maxLength: 64
        browser_has_java_enabled:
          type: string
          minLength: 1
          maxLength: 64
        browser_accept_header:
          type: string
          minLength: 1
          maxLength: 64
        ip:
          type: string
          minLength: 1
          maxLength: 64
    paymentDetails:
      properties:
        payment_token_id:
          type: string
          description: Only for **CARD** flow
        payment_token_type:
          type: string
        card_scheme:
          type: string
          description: Only for **CARD** flow
        card_bin:
          type: string
          description: Only for **CARD** flow
        card_last_four_digits:
          type: string
          description: Only for **CARD** flow
        customer_full_name:
          type: string
          description: Only for **CARD** flow
        customer_phone_number:
          type: string
        customer_email:
          type: string
        customer_first_name:
          type: string
        customer_last_name:
          type: string
        card_expiry_month:
          type: string
          description: Only for **CARD** flow
        card_expiry_year:
          type: string
          description: Only for **CARD** flow
        card_data_id:
          type: string
          description: Only for **CARD** flow
        customer_selected_country_code:
          type: string
    product:
      discriminator:
        propertyName: product_type
      properties:
        product_id:
          type: string
          minLength: 1
          maxLength: 64
          description: Product ID in Upgate env
        merchant_product_id:
          type: string
          minLength: 1
          maxLength: 128
          description: >
            **Optional** field, might be used as a reference from the merchant
            side
        product_price:
          type: string
          pattern: ^\d{1,18}(?:\.\d{1,2})?$
        product_transaction_price:
          type: string
          pattern: ^\d{1,18}(?:\.\d{1,2})?$
        product_name:
          type: string
          minLength: 1
          maxLength: 256
        product_description:
          type: string
          maxLength: 256
          minLength: 1
      required:
        - product_type
        - product_name
        - product_price
    productSale:
      allOf:
        - $ref: '#/components/schemas/product'
        - type: object
          properties:
            product_type:
              type: string
              enum:
                - SALE
    productSubscription:
      allOf:
        - $ref: '#/components/schemas/product'
        - type: object
          properties:
            product_type:
              type: string
              enum:
                - SUBSCRIPTION
            charge_interval_value:
              type: integer
              format: int32
              minimum: 1
            charge_interval:
              type: string
              enum:
                - DAY
            is_trial:
              type: boolean
              description: If subscription with trial period
            trial_interval_value:
              type: integer
              format: int32
              minimum: 1
              description: Only for trial subscription
            trial_interval:
              type: string
              enum:
                - DAY
              description: Only for trial subscription
            rebill_transaction_amount:
              type: string
            rebill_transaction_currency_code:
              type: string
            rebill_transaction_fee_amount:
              type: string
            rebill_transaction_fee_currency_code:
              type: string
      required:
        - product_name
        - product_price
        - product_description
        - product_type
        - charge_interval
        - charge_interval_value
        - rebill_transaction_amount
        - rebill_transaction_currency_code
        - is_trial
    payment:
      required:
        - payment_id
        - payment_type
        - payment_method
        - created_at
        - merchant_id
        - merchant_customer_id
        - email
        - amount
        - currency_code
        - country_code
        - products
      properties:
        payment_id:
          type: string
          minLength: 1
          maxLength: 64
        initial_subscription_id:
          type: string
          minLength: 1
          maxLength: 64
        payment_type:
          type: string
          enum:
            - SALE
            - AUTHORIZE
            - MIT_SALE
            - MIT_AUTHORIZE
            - RECURRING
        payment_method:
          type: string
        created_at:
          type: string
          minLength: 1
          maxLength: 64
          example: '2020-20-20T20:00:00.633Z'
          description: UTC date time format
        merchant_id:
          type: string
          minLength: 1
          maxLength: 64
        merchant_payment_id:
          type: string
          minLength: 1
          maxLength: 64
        merchant_customer_id:
          type: string
          minLength: 1
          maxLength: 64
        email:
          type: string
          minLength: 1
          maxLength: 320
        amount:
          type: string
          pattern: ^\d{1,18}(?:\.\d{1,2})?$
        language:
          type: string
          minLength: 1
          maxLength: 64
        country_code:
          type: string
          description: Country Code (ISO 3166-2)
          pattern: ^[A-Z]{2}$
        currency_code:
          description: Currency code (ISO 4217)
          type: string
          pattern: ^[A-Z]{3}$
        base_amount:
          type: string
          pattern: ^\d{1,18}(?:\.\d{1,2})?$
        base_currency_code:
          description: Currency code (ISO 4217)
          type: string
          pattern: ^[A-Z]{3}$
        forced_3d:
          type: boolean
          description: If needs to initiate 3d secure from merchant side
        success_url:
          type: string
          format: url
          minLength: 1
          maxLength: 2048
          description: |
            **required** only for SALE | AUTHORIZE | RECURRING
        failure_url:
          type: string
          format: url
          minLength: 1
          maxLength: 2048
          description: |
            **required** only for SALE | AUTHORIZE | RECURRING
        payment_token_id:
          type: string
          minLength: 1
          maxLength: 64
          description: |
            Token from original payment. Used for MIT_SALE | MIT_AUTHORIZE
        shop_name:
          type: string
          minLength: 1
          maxLength: 128
          description: |
            Shop name
        shop_url:
          type: string
          minLength: 1
          maxLength: 128
          description: |
            Shop URL with protocol HTTP or HTTPS
        session:
          $ref: '#/components/schemas/session'
        products:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/productSale'
              - $ref: '#/components/schemas/productSubscription'
          description: Expected at least 1 product
    postback:
      properties:
        transaction_id:
          type: string
          minLength: 1
          maxLength: 64
        transaction_type:
          type: string
          enum:
            - THREE_DS
            - SALE
            - AUTHORIZE
            - PAYOUT
            - CHARGEBACK
            - CHARGEBACK_REVERSAL
            - RDR
            - RDR_REVERSAL
            - REFUND
            - FRAUD_ALERT
        transaction_status:
          type: string
          enum:
            - SUCCESS
            - DECLINE
            - ERROR
        created_at:
          type: string
          description: UTC date time format
        response_code:
          type: number
          description: |
            Code from [response codes](#section/Constants/Response-Codes)
        response_text:
          type: string
          description: |
            Message from [response codes](#section/Constants/Response-Codes)
        transaction_details:
          type: object
          $ref: '#/components/schemas/transactionDetails'
        payment_context:
          type: object
          $ref: '#/components/schemas/paymentContext'
        payment_details:
          type: object
          $ref: '#/components/schemas/paymentDetails'
        payment:
          type: object
          allOf:
            - $ref: '#/components/schemas/payment'
          properties:
            transaction_amount:
              type: string
              pattern: ^\d{1,18}(?:\.\d{1,2})?$
            transaction_currency_code:
              description: Currency code (ISO 4217)
              type: string
              pattern: ^[A-Z]{3}$
      required:
        - transaction_id
        - transaction_type
        - transaction_status
        - created_at
        - response_code
        - response_text
        - transaction_details
        - payment_details
        - payment
    transactionPostback:
      properties:
        type:
          type: string
          enum:
            - TRANSACTION
        data:
          type: object
          $ref: '#/components/schemas/postback'
    subscriptionPaymentData:
      type: object
      properties:
        type:
          type: string
          enum:
            - AUTHORIZE
            - RECURRING
        methods:
          type: array
          items:
            type: string
          description: >
            Supported Payment methods can be found
            [here](/openapi/section/card-flow/supported-payment-methods) for
            cards and
            [here](/openapi/section/alternative-payment-methods-(apm)/support-payment-methods)
            for alternative payment methods.

            Please note that the payment methods can be empty, in this case
            payment methods would be taken from the back office configuration.

            In case you are using Google Pay or Apple Pay, Card method needs to
            be included as well, e.g. "APPLE_PAY", "CARD" or "GOOGLE_PAY",
            "CARD"
        amount:
          type: number
        currency_code:
          type: string
          description: Currency code (ISO 4217)
          pattern: ^[A-Z]{3}$
        forced_3d:
          type: boolean
        shop_name:
          type: string
          minLength: 1
          maxLength: 128
        shop_url:
          type: string
          pattern: ^https://
          minLength: 1
          maxLength: 128
        merchant_payment_id:
          type: string
      required:
        - type
        - amount
        - currency_code
    subscriptionProduct:
      properties:
        merchant_product_id:
          type: string
          minLength: 1
          maxLength: 128
        type:
          type: string
          enum:
            - SUBSCRIPTION
        price:
          type: number
        name:
          type: string
        description:
          type: string
        charge:
          type: object
          properties:
            value:
              type: integer
              format: int32
              minimum: 1
            interval:
              type: string
              enum:
                - DAY
        trial:
          type: object
          properties:
            value:
              type: integer
              format: int32
              minimum: 1
            interval:
              type: string
              enum:
                - DAY
      required:
        - charge
        - type
        - price
        - name
    subscriptionRequest:
      type: object
      properties:
        payment_data:
          type: object
          title: Subscription data
          $ref: '#/components/schemas/subscriptionPaymentData'
        customer:
          type: object
          properties:
            merchant_customer_id:
              type: string
            email:
              type: string
            language:
              type: string
              pattern: ^[a-z]{2}-[a-z]{2}$
            country_code:
              type: string
              description: Country Code (ISO 3166-2)
              pattern: ^[A-Z]{2}$
          required:
            - merchant_customer_id
        callback:
          type: object
          description: >-
            Specifies the URLs to which the customer will be redirected after
            completing a payment transaction. The *success_url* is used for
            redirection upon successful payment, and the *failure_url* is used
            in case of payment failure.
          properties:
            success_url:
              type: string
              minLength: 1
              maxLength: 512
            failure_url:
              type: string
              minLength: 1
              maxLength: 512
          required:
            - success_url
            - failure_url
        products:
          type: array
          items:
            type: object
            title: Subscription product
            $ref: '#/components/schemas/subscriptionProduct'
        additional_info:
          type: object
          properties:
            payment_token_id:
              type: string
            crypto_network:
              type: string
            crypto_address:
              type: string
            crypto_withdrawal_address:
              type: string
            email:
              type: string
            customer_full_name:
              type: string
            phone:
              type: string
        payment_form_override:
          description: >-
            [Customizing Payment Form
            Appearance.](/openapi/section/customizing-payment-form-appearance) 
            All these parameters will override existing configuration in Upgate
            back office if any
          $ref: '#/components/schemas/paymentFormOverride'
      required:
        - payment_data
        - customer
        - callback
        - products
    subscriptionResponse:
      allOf:
        - $ref: '#/components/schemas/subscriptionRequest'
      required:
        - id
        - created_at
        - merchant_id
        - session
      properties:
        id:
          type: string
        created_at:
          type: string
        merchant_id:
          type: string
        session:
          $ref: '#/components/schemas/session'
    paymentRequest:
      required:
        - payment_method
        - merchant_customer_id
        - email
        - amount
        - currency_code
        - country_code
        - products
      properties:
        payment_method:
          type: string
        merchant_payment_id:
          type: string
          minLength: 1
          maxLength: 64
          description: >
            **Optional** field, might be used as a reference from the merchant
            side
        merchant_customer_id:
          type: string
          minLength: 1
          maxLength: 64
        email:
          type: string
          minLength: 1
          maxLength: 320
        amount:
          type: string
          pattern: ^\d{1,18}(?:\.\d{1,2})?$
          description: can't be zero for SALE | MIT_SALE
        language:
          type: string
          pattern: ^[a-z]{2}-[a-z]{2}$
          description: |
            **required** only for SALE | AUTHORIZE | RECURRING
        country_code:
          type: string
          description: Country Code (ISO 3166-2)
          pattern: ^[A-Z]{2}$
        currency_code:
          type: string
          description: Currency code (ISO 4217)
          pattern: ^[A-Z]{3}$
        forced_3d:
          type: boolean
          default: false
          description: |
            If needs to initiate 3d secure from merchant side.
        success_url:
          type: string
          format: url
          minLength: 1
          maxLength: 512
          description: |
            **required** only for SALE | AUTHORIZE | RECURRING
        failure_url:
          type: string
          format: url
          minLength: 1
          maxLength: 512
          description: |
            **required** only for SALE | AUTHORIZE | RECURRING
        shop_name:
          type: string
          minLength: 1
          maxLength: 128
          description: |
            Shop name
        shop_url:
          type: string
          minLength: 1
          maxLength: 128
          description: |
            Shop URL with protocol HTTP or HTTPS
        products:
          type: array
          items:
            oneOf:
              - $ref: '#/components/schemas/productSale'
              - $ref: '#/components/schemas/productSubscription'
          maxItems: 10
          minItems: 0
          description: |
            Expected at least 1 product
        payment_form_override:
          description: >-
            [Customizing Payment Form
            Appearance.](/openapi/section/customizing-payment-form-appearance) 
            All these parameters will override existing configuration in Upgate
            back office if any
          $ref: '#/components/schemas/paymentFormOverride'
    paymentResponse:
      required:
        - type
        - data
      properties:
        type:
          type: string
          enum:
            - PAYMENT
        data:
          type: object
          $ref: '#/components/schemas/payment'
    mitPaymentRequest:
      allOf:
        - $ref: '#/components/schemas/paymentRequest'
      required:
        - payment_token_id
      properties:
        payment_token_id:
          type: string
          minLength: 1
          maxLength: 64
          description: Token from original payment
    subscription:
      properties:
        subscription_id:
          type: string
          minLength: 1
          maxLength: 64
        created_at:
          type: string
          description: UTC date time format
        subscription_status:
          type: string
          minLength: 1
          maxLength: 64
        expires_at:
          type: string
          description: UTC date time format
        merchant_id:
          type: string
          minLength: 1
          maxLength: 64
        merchant_product_id:
          type: string
          minLength: 1
          maxLength: 64
        merchant_payment_id:
          type: string
          minLength: 1
          maxLength: 64
        merchant_customer_id:
          type: string
          minLength: 1
          maxLength: 64
        payment_method:
          type: string
          enum:
            - CARD
        currency_code:
          type: string
          minLength: 1
          maxLength: 64
        amount:
          type: string
          minLength: 1
          maxLength: 64
        transaction_currency_code:
          type: string
          minLength: 1
          maxLength: 64
        transaction_amount:
          type: string
          minLength: 1
          maxLength: 64
        transaction_fee_currency_code:
          type: string
          minLength: 1
          maxLength: 64
        transaction_fee_amount:
          type: string
          minLength: 1
          maxLength: 64
        is_trial:
          type: boolean
        charge_interval:
          type: string
          enum:
            - DAY
        charge_interval_value:
          type: number
        is_rebill_enabled:
          type: boolean
        trial_interval:
          type: string
          enum:
            - DAY
        trial_interval_value:
          type: number
        payment_id:
          type: string
          example: 2JWZGTNKS67K2
        product_id:
          type: string
          example: 2JWZGTNKSG7K2
        retry_at:
          type: string
          description: UTC date time format
        retry_count:
          type: number
        retry_total_count:
          type: number
          description: Total count of attempts to rebill
        shop_name:
          type: string
          description: Shop name from original payment
        shop_url:
          type: string
          description: Shop URL from original payment
    subscriptionPostback:
      properties:
        type:
          type: string
          enum:
            - SUBSCRIPTION
        data:
          allOf:
            - $ref: '#/components/schemas/subscription'
          properties:
            version:
              type: integer
            initial_transaction_id:
              type: string
    metaPageInfo:
      required:
        - pageNumber
        - pageSize
      type: object
      properties:
        pageNumber:
          type: integer
          format: int32
        pageSize:
          type: integer
          format: int32
    subscriptionListResponse:
      required:
        - type
        - data
        - meta
      properties:
        type:
          type: string
          enum:
            - SUBSCRIPTION
        data:
          type: array
          items:
            $ref: '#/components/schemas/subscription'
        meta:
          $ref: '#/components/schemas/metaPageInfo'
    changeSubscriptionStatus:
      properties:
        is_rebill_enabled:
          type: boolean
      required:
        - is_rebill_enabled
    error2:
      title: error
      properties:
        timestamp:
          type: string
        status:
          type: number
        error:
          type: string
        message:
          type: string
        path:
          type: string
      required:
        - timestamp
        - status
        - error
        - message
        - path
    tokenRequest:
      required:
        - payment_method
        - merchant_customer_id
        - email
        - language
        - country_code
        - success_url
        - failure_url
      properties:
        payment_method:
          type: string
          enum:
            - CARD
        merchant_payment_id:
          type: string
          minLength: 1
          maxLength: 64
          description: >
            **Optional** field, might be used as a reference from the merchant
            side
        merchant_customer_id:
          type: string
          minLength: 1
          maxLength: 64
        email:
          type: string
          minLength: 1
          maxLength: 320
        language:
          type: string
          pattern: ^[a-z]{2}-[a-z]{2}$
        country_code:
          type: string
          description: Country Code (ISO 3166-2)
          pattern: ^[A-Z]{2}$
        success_url:
          type: string
          format: url
          minLength: 1
          maxLength: 2048
        failure_url:
          type: string
          format: url
          minLength: 1
          maxLength: 2048
        prefilled_card_holder:
          type: string
          minLength: 1
          maxLength: 64
          description: |
            Card holder name to show on payment form
    token:
      required:
        - payment_id
        - payment_type
        - payment_method
        - created_at
        - merchant_id
        - merchant_customer_id
        - email
        - country_code
        - session
        - success_url
        - failure_url
      properties:
        payment_id:
          type: string
          minLength: 1
          maxLength: 64
        payment_type:
          type: string
          enum:
            - TOKEN
        payment_method:
          type: string
          enum:
            - CARD
        created_at:
          type: string
          minLength: 1
          maxLength: 64
          example: '2020-20-20T20:00:00.633Z'
          description: UTC date time format
        merchant_id:
          type: string
          minLength: 1
          maxLength: 64
        merchant_payment_id:
          type: string
          minLength: 1
          maxLength: 64
        merchant_customer_id:
          type: string
          minLength: 1
          maxLength: 64
        email:
          type: string
          minLength: 1
          maxLength: 320
        language:
          type: string
          minLength: 1
          maxLength: 64
        country_code:
          type: string
          description: Country Code (ISO 3166-2)
          pattern: ^[A-Z]{2}$
        success_url:
          type: string
          format: url
          minLength: 1
          maxLength: 2048
        failure_url:
          type: string
          format: url
          minLength: 1
          maxLength: 2048
        prefilled_card_holder:
          type: string
          minLength: 1
          maxLength: 64
          description: |
            Card holder name to show on payment form
        shop_name:
          type: string
          minLength: 1
          maxLength: 128
          description: |
            Shop name
        shop_url:
          type: string
          pattern: ^https://
          minLength: 1
          maxLength: 128
          description: |
            Shop URL with protocol HTTP or HTTPS
        session:
          $ref: '#/components/schemas/session'
    tokenResponse:
      required:
        - type
        - data
      properties:
        type:
          type: string
          enum:
            - PAYMENT
        data:
          type: object
          $ref: '#/components/schemas/token'
    payoutPaymentMethod:
      type: string
      enum:
        - CARD
        - CRYPTO
        - SEPA
        - PAXUM
    cardPaymentDetails:
      title: Card payment details
      type: object
      properties:
        payment_token_id:
          type: string
          minLength: 1
          maxLength: 64
      required:
        - payment_token_id
    cryptoPaymentDetails:
      title: Crypto payment details
      type: object
      properties:
        crypto_network:
          type: string
          enum:
            - TRON
            - ETHEREUM
        crypto_address:
          type: string
          minLength: 1
          maxLength: 128
        crypto_withdrawal_address:
          type: string
          minLength: 1
          maxLength: 128
      required:
        - crypto_network
        - crypto_address
        - crypto_withdrawal_address
    sepaPaymentDetails:
      title: Sepa payment details
      type: object
      properties:
        creditor_name:
          type: string
          minLength: 1
          maxLength: 128
        creditor_bank_name:
          type: string
          minLength: 1
          maxLength: 128
        creditor_bank_bic:
          type: string
          minLength: 1
          maxLength: 11
        creditor_bank_account:
          type: string
          minLength: 1
          maxLength: 34
      required:
        - creditor_name
        - creditor_bank_name
        - creditor_bank_bic
        - creditor_bank_account
    paxumPaymentDetails:
      title: Paxum payment details
      type: object
      properties:
        payment_email:
          description: Paxum account email
          type: string
          minLength: 1
          maxLength: 320
        beneficiary_email:
          description: Recipient email
          type: string
          minLength: 1
          maxLength: 320
        reference:
          description: Transaction reference for merchant reference
          type: string
          minLength: 1
          maxLength: 128
      required:
        - beneficiary_email
    request:
      required:
        - payment_method
        - merchant_payment_id
        - merchant_customer_id
        - amount
        - currency_code
        - payment_details
      properties:
        payment_method:
          $ref: '#/components/schemas/payoutPaymentMethod'
        merchant_payment_id:
          type: string
          minLength: 1
          maxLength: 64
          description: |
            Field, might be uniq for every request (deduplication check)
        merchant_customer_id:
          type: string
          minLength: 1
          maxLength: 64
        amount:
          type: string
          pattern: ^\d{1,18}(?:\.\d{0,20})?$
        currency_code:
          type: string
          description: Currency code (ISO 4217)
        payment_details:
          oneOf:
            - $ref: '#/components/schemas/cardPaymentDetails'
            - $ref: '#/components/schemas/cryptoPaymentDetails'
            - $ref: '#/components/schemas/sepaPaymentDetails'
            - $ref: '#/components/schemas/paxumPaymentDetails'
        description:
          type: string
          maxLength: 256
          minLength: 1
    response:
      required:
        - type
        - data
      properties:
        type:
          type: string
          enum:
            - PAYMENT
        data:
          allOf:
            - $ref: '#/components/schemas/request'
          type: object
          required:
            - payment_id
            - payment_type
            - created_at
            - merchant_id
            - base_amount
            - base_currency_code
          properties:
            payment_id:
              type: string
              minLength: 1
              maxLength: 64
            payment_type:
              type: string
              enum:
                - PAYOUT
            created_at:
              type: string
              minLength: 1
              maxLength: 64
              example: '2020-20-20T20:00:00.633Z'
              description: UTC date time format
            merchant_id:
              type: string
              minLength: 1
              maxLength: 64
            base_amount:
              type: string
              pattern: ^\d{1,18}(?:\.\d{1,2})?$
            base_currency_code:
              description: Currency code (ISO 4217)
              type: string
              pattern: ^[A-Z]{3}$
  examples:
    '400':
      value:
        errors:
          - error_code: INVALID_REQUEST_PARAMETER
            error_message: Field `amount` is out of format
    '401':
      value:
        errors:
          - error_code: INVALID_REQUEST
            error_message: Not authorized
    '404':
      value:
        timestamp: '2024-04-12T09:30:36.424+00:00'
        status: 404
        error: Not Found
        message: Subscription for merchant not found
        path: /api/merchant-operations/v4/subscription/2IOZPJIDK2DK3
    '429':
      value:
        errors:
          - error_code: TOO_MANY_REQUESTS
            error_message: Too many requests for merchant_customer_id:U_001
    '500':
      value:
        errors:
          - error_code: INTERNAL_ERROR
            error_message: Something goes wrong
    checkoutRequest:
      value:
        payment_data:
          merchant_payment_id: P_001
          methods:
            - CARD
            - MBWAY
          type: SALE
          amount: 9.99
          currency_code: EUR
        customer:
          merchant_customer_id: U_001
        callback:
          success_url: https://example.com/success
          failure_url: https://example.com/failure
        products:
          - type: SALE
            name: Test product name
            description: Test product description
            price: 9.99
    overrideThemeCheckoutRequest:
      value:
        payment_data:
          merchant_payment_id: P_001
          methods:
            - CARD
            - MBWAY
          type: SALE
          amount: 9.99
          currency_code: EUR
        customer:
          merchant_customer_id: U_001
        callback:
          success_url: https://example.com/success
          failure_url: https://example.com/failure
        products:
          - type: SALE
            name: Test product name
            description: Test product description
            price: 9.99
        payment_form_override:
          color: '#ff0000'
          theme_type: LIGHT
          theme_variables:
            backgroundColor: '#f0f0f0'
            fontFamily: Roboto, Helvetica, Arial, sans-serif
            borderRadius: 8px
          theme_rules:
            .card:
              boxShadow: rgba(0, 0, 0, 0.12) 0px 4px 10px -2px
    checkoutResponse:
      value:
        id: 2E2CL5R3KC7K3
        created_at: '2022-04-15T10:54:03.633Z'
        merchant_id: upgatetests
        payment_data:
          merchant_payment_id: P_001
          methods:
            - CARD
            - MBWAY
          type: SALE
          amount: 9.99
          currency_code: EUR
        customer:
          merchant_customer_id: U_001
        callback:
          success_url: https://example.com/success
          failure_url: https://example.com/failure
        products:
          - type: SALE
            name: Test product name
            description: Test product description
            price: 9.99
        session:
          created_at: '2024-02-15T13:38:47.173Z'
          expires_at: '2024-02-15T13:53:47.173Z'
          redirect_url: https://hub.sandbox.upgate.com/redirect/?sessionId=S_001
    successSalePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: SALE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
            customer_selected_country_code: GB
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: SALE
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            amount: '9.99'
            currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.00'
            transaction_fee_currency_code: GBP
            base_amount: '9.46'
            base_currency_code: EUR
            forced_3d: false
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    successSale3dPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: SALE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
            three_ds_authentication_value: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
            three_ds_processor: NETCETERA
            three_ds_server_transaction_id: b72397aa-8811-430d-9a8a-a44f3a7c2552
            three_ds_eci: '05'
            three_ds_status: 'Y'
            three_ds_challenge_type: FRICTIONALESS
            three_ds_version: '2.1'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
            customer_selected_country_code: GB
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: SALE
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            amount: '9.99'
            currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.00'
            transaction_fee_currency_code: GBP
            base_amount: '9.46'
            base_currency_code: EUR
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    errorSalePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: SALE
          transaction_status: ERROR
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 2901
          response_text: Integration error
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor: PAYABL
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: SALE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.98'
            transaction_currency_code: GBP
            base_amount: '4.74'
            base_currency_code: EUR
            email: john_doe@upgate.com
            country_code: CY
            language: en-cy
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.98'
                product_name: Test product name
                product_description: Test product description
    success3dSecureSalePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2EOZ25TOS2323
          transaction_type: THREE_DS
          transaction_status: SUCCESS
          created_at: '2022-06-14T16:14:26.515Z'
          response_code: 1301
          response_text: 3DS verification successful (frictionless)
          version: 1
          transaction_details:
            three_ds_authentication_value: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
            three_ds_processor: NETCETERA
            three_ds_server_transaction_id: b72397aa-8811-430d-9a8a-a44f3a7c2552
            three_ds_eci: '05'
            three_ds_status: 'Y'
            three_ds_challenge_type: FRICTIONALESS
            three_ds_version: '2.1'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
            customer_selected_country_code: GB
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: SALE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.98'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.00'
            transaction_fee_currency_code: GBP
            email: john_doe@upgate.com
            country_code: CY
            base_amount: '4.74'
            base_currency_code: EUR
            language: en-cy
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.98'
                product_name: Test product name
                product_description: Test product description
    decline3dSecureSalePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2JVNHEUA22323
          transaction_type: THREE_DS
          transaction_status: DECLINE
          created_at: '2023-02-28T12:57:08.12Z'
          response_code: 1320
          response_text: 3DS verification denied
          version: 1
          payment_context:
            browser_user_agent: Apache-HttpClient/4.5.13 (Java/17.0.6)
            browser_screen_height: '1792'
            browser_color_depth: '30'
            browser_language: en-US
            browser_timezone_offset: '-180'
            browser_screen_width: '1120'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'false'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: VISA
            card_bin: '423412'
            card_last_four_digits: '0002'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '2'
            card_expiry_year: '2025'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2JVNHBIN267K2
            payment_type: SALE
            payment_method: CARD
            created_at: '2023-02-28T12:56:54.348Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            amount: '70.00'
            currency_code: EUR
            transaction_amount: '59.93'
            transaction_currency_code: GBP
            base_amount: '70.00'
            base_currency_code: EUR
            email: john_doe@upgate.com
            country_code: US
            language: en-US
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            forced_3d: true
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    chargebackPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K4
          transaction_type: CHARGEBACK
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '10.4'
            arn: '331700997347'
            reference_transaction_id: 2E2CL7BTK23K3
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: SALE
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            amount: '9.99'
            currency_code: USD
            base_amount: '9.99'
            base_currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    chargebackReversalPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K4
          transaction_type: CHARGEBACK_REVERSAL
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '10.4'
            arn: '331700997347'
            reference_transaction_id: 2E2CL7BTK23K3
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: SALE
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            amount: '9.99'
            currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            base_amount: '9.46'
            base_currency_code: EUR
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    fraudAlertPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K4
          transaction_type: FRAUD_ALERT
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_transaction_id: '104335314'
            processor: PAYABL
            fraud_alert_processor: ETHOCA
            processor_response_code: Fraud
            arn: '331700997347'
            reference_transaction_id: 2E2CL7BTK23K3
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: SALE
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            amount: '9.99'
            currency_code: USD
            base_amount: '9.99'
            base_currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    subscriptionCheckoutRequest:
      value:
        payment_data:
          merchant_payment_id: P_001
          methods:
            - CARD
            - MBWAY
          type: RECURRING
          amount: 9.99
          currency_code: EUR
        customer:
          merchant_customer_id: U_001
        callback:
          success_url: https://example.com/success
          failure_url: https://example.com/failure
        products:
          - type: SUBSCRIPTION
            name: Test product name
            description: Test product description
            price: 9.99
            charge:
              value: 30
              interval: DAY
    trialSubscriptionCheckoutRequest:
      value:
        payment_data:
          merchant_payment_id: P_001
          methods:
            - CARD
            - MBWAY
          type: RECURRING
          amount: 9.99
          currency_code: EUR
        customer:
          merchant_customer_id: U_001
        callback:
          success_url: https://example.com/success
          failure_url: https://example.com/failure
        products:
          - type: SUBSCRIPTION
            name: Test product name
            description: Test product description
            price: 9.99
            charge:
              value: 30
              interval: DAY
            trial:
              value: 30
              interval: DAY
    subscriptionCheckoutResponse:
      value:
        id: 2E2CL5R3KC7K3
        created_at: '2022-04-15T10:54:03.633Z'
        merchant_id: upgatetests
        payment_data:
          merchant_payment_id: P_001
          methods:
            - CARD
            - MBWAY
          type: RECURRING
          amount: 9.99
          currency_code: EUR
        customer:
          merchant_customer_id: U_001
        callback:
          success_url: https://example.com/success
          failure_url: https://example.com/failure
        products:
          - type: SUBSCRIPTION
            name: Test product name
            description: Test product description
            price: 9.99
            charge:
              value: 30
              interval: DAY
        session:
          created_at: '2024-02-15T13:38:47.173Z'
          expires_at: '2024-02-15T13:53:47.173Z'
          redirect_url: https://hub.sandbox.upgate.com/redirect/?sessionId=S_001
    trialSubscriptionCheckoutResponse:
      value:
        id: 2E2CL5R3KC7K3
        created_at: '2022-04-15T10:54:03.633Z'
        merchant_id: upgatetests
        payment_data:
          merchant_payment_id: P_001
          methods:
            - CARD
            - MBWAY
          type: RECURRING
          amount: 9.99
          currency_code: EUR
        customer:
          merchant_customer_id: U_001
        callback:
          success_url: https://example.com/success
          failure_url: https://example.com/failure
        products:
          - type: SUBSCRIPTION
            name: Test product name
            description: Test product description
            price: 9.99
            charge:
              value: 30
              interval: DAY
            trial:
              value: 30
              interval: DAY
        session:
          created_at: '2024-02-15T13:38:47.173Z'
          expires_at: '2024-02-15T13:53:47.173Z'
          redirect_url: https://hub.sandbox.upgate.com/redirect/?sessionId=S_001
    authorizeRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '9.99'
        currency_code: USD
        email: john_doe@upgate.com
        language: en-us
        country_code: US
        forced_3d: true
        success_url: https://example.com/success
        failure_url: https://example.com/failure
        shop_name: my shop
        shop_url: https://shop.com
        products:
          - merchant_product_id: R_001
            product_type: SALE
            product_price: '9.99'
            product_name: Test product name
            product_description: Test product description
    authorizeResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: AUTHORIZE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          language: en-us
          country_code: US
          currency_code: USD
          base_amount: '9.46'
          base_currency_code: EUR
          forced_3d: true
          success_url: https://example.com/success
          failure_url: https://example.com/failure
          shop_name: my shop
          shop_url: https://shop.com
          session:
            created_at: '2022-04-15T10:54:03.633Z'
            expires_at: '2022-04-15T11:09:03.633Z'
            redirect_url: https://upgate.com/redirect/?sessionId=2DIAIPQWC67K2
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
    successAuthorizePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: AUTHORIZE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
            customer_selected_country_code: GB
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: AUTHORIZE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            email: john_doe@gmail.com
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.94'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.00'
            transaction_fee_currency_code: GBP
            base_amount: '4.74'
            base_currency_code: EUR
            country_code: CY
            language: en-cy
            forced_3d: false
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.94'
                product_name: Test product name
                product_description: Test product description
    successAuthorize3dPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: AUTHORIZE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
            three_ds_authentication_value: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
            three_ds_processor: NETCETERA
            three_ds_server_transaction_id: b72397aa-8811-430d-9a8a-a44f3a7c2552
            three_ds_eci: '05'
            three_ds_status: 'Y'
            three_ds_challenge_type: FRICTIONALESS
            three_ds_version: '2.1'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
            customer_selected_country_code: GB
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: AUTHORIZE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.98'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.00'
            transaction_fee_currency_code: GBP
            email: john_doe@gmail.com
            base_amount: '4.76'
            base_currency_code: EUR
            country_code: US
            language: en-us
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.98'
                product_name: Test product name
                product_description: Test product description
    errorAuthorizePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: AUTHORIZE
          transaction_status: ERROR
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 2901
          response_text: Integration error
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor: PAYABL
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: AUTHORIZE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.98'
            transaction_currency_code: GBP
            base_amount: '4.46'
            base_currency_code: EUR
            email: john_doe@upgate.com
            country_code: CY
            language: en-cy
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.98'
                product_name: Test product name
                product_description: Test product description
    success3dSecureAuthorizePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2EOZ25TOS2323
          transaction_type: THREE_DS
          transaction_status: SUCCESS
          created_at: '2022-06-14T16:14:26.515Z'
          response_code: 1301
          response_text: 3DS verification successful (frictionless)
          transaction_details:
            three_ds_authentication_value: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
            three_ds_processor: NETCETERA
            three_ds_server_transaction_id: b72397aa-8811-430d-9a8a-a44f3a7c2552
            three_ds_eci: '05'
            three_ds_status: 'Y'
            three_ds_challenge_type: FRICTIONALESS
            three_ds_version: '2.1'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
            customer_selected_country_code: GB
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: AUTHORIZE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.98'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.00'
            transaction_fee_currency_code: GBP
            base_amount: '4.46'
            base_currency_code: EUR
            email: john_doe@upgate.com
            country_code: CY
            language: en-cy
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            version: 1
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.98'
                product_name: Test product name
                product_description: Test product description
    decline3dSecureAuthorizePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2JVNHEUA22323
          transaction_type: THREE_DS
          transaction_status: DECLINE
          created_at: '2023-02-28T12:57:08.12Z'
          response_code: 1320
          response_text: 3DS verification denied
          version: 1
          payment_context:
            browser_user_agent: Apache-HttpClient/4.5.13 (Java/17.0.6)
            browser_screen_height: '1792'
            browser_color_depth: '30'
            browser_language: en-US
            browser_timezone_offset: '-180'
            browser_screen_width: '1120'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'false'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: VISA
            card_bin: '423412'
            card_last_four_digits: '0002'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '2'
            card_expiry_year: '2025'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2JVNHBIN267K2
            payment_type: AUTHORIZE
            payment_method: CARD
            created_at: '2023-02-28T12:56:54.348Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            amount: '70.00'
            currency_code: EUR
            transaction_amount: '59.93'
            transaction_currency_code: GBP
            base_amount: '70.00'
            base_currency_code: EUR
            email: john_doe@upgate.com
            country_code: US
            language: en-US
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            forced_3d: true
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    mitSaleRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '9.99'
        currency_code: USD
        email: john_doe@upgate.com
        country_code: US
        payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
        shop_name: my shop
        shop_url: https://shop.com
        products:
          - merchant_product_id: R_001
            product_type: SALE
            product_price: '9.99'
            product_name: Test product name
            product_description: Test product description
    asyncMitSaleResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: MIT_SALE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          country_code: US
          base_amount: '9.46'
          base_currency_code: EUR
          currency_code: USD
          payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
          shop_name: my shop
          shop_url: https://shop.com
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
    syncMitSaleResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: MIT_SALE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          country_code: US
          currency_code: USD
          base_amount: '9.46'
          base_currency_code: EUR
          payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
          shop_name: my shop
          shop_url: https://shop.com
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
          transactions:
            - transaction_id: 2E2CL7BTK23K3
              transaction_type: SALE
              transaction_status: SUCCESS
              created_at: '2022-05-13T12:24:37.094Z'
              response_code: 1000
              response_text: Success
              transaction_details:
                processor_merchant_account_id: '28148'
                processor_transaction_id: '104335314'
                processor: PAYABL
                processor_response_code: '0'
                processor_response_text: Response text example
                cascade_attempt: '0'
                has_been_cascaded: false
                arn: '331700997347'
              payment_details:
                payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
                card_scheme: MASTERCARD
                card_bin: '523205'
                card_last_four_digits: '0003'
                customer_full_name: John Doe
                customer_phone_number: '1234567890'
                customer_email: johndoe@gmail.com
                customer_first_name: John
                customer_last_name: Doe
                payment_token_type: CARD
                card_expiry_month: '12'
                card_expiry_year: '2024'
    syncMitSaleResponseError:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: MIT_SALE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          country_code: US
          currency_code: USD
          payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
          shop_name: my shop
          shop_url: https://shop.com
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
          transactions:
            - transaction_id: 2E2CL7BTK23K3
              transaction_type: SALE
              transaction_status: ERROR
              created_at: '2022-05-13T12:24:37.094Z'
              response_code: 2901
              response_text: Integration error
              transaction_details:
                processor_merchant_account_id: '28148'
                processor: PAYABL
              payment_details:
                card_scheme: MASTERCARD
                card_bin: '523205'
                card_last_four_digits: '0003'
                customer_full_name: John Doe
                customer_phone_number: '1234567890'
                customer_email: johndoe@gmail.com
                customer_first_name: John
                customer_last_name: Doe
                payment_token_type: CARD
                card_expiry_month: '12'
                card_expiry_year: '2024'
    successMitSalePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: SALE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: MIT_SALE
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            country_code: US
            amount: '9.99'
            currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.99'
            transaction_fee_currency_code: GBP
            base_amount: '9.46'
            base_currency_code: EUR
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    errorMitSalePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: SALE
          transaction_status: ERROR
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 2901
          response_text: Integration error
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor: PAYABL
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: MIT_SALE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.98'
            transaction_currency_code: GBP
            base_amount: '4.46'
            base_currency_code: EUR
            email: john_doe@upgate.com
            country_code: CY
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.98'
                product_name: Test product name
                product_description: Test product description
    mitAuthorizeRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '9.99'
        email: john_doe@upgate.com
        currency_code: USD
        country_code: US
        payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
        shop_name: my shop
        shop_url: https://shop.com
        products:
          - merchant_product_id: R_001
            product_type: SALE
            product_price: '9.99'
            product_name: Test product name
            product_description: Test product description
    asyncMitAuthorizeResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: MIT_AUTHORIZE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          country_code: US
          currency_code: USD
          payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
          shop_name: my shop
          shop_url: https://shop.com
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
    syncMitAuthorizeResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: MIT_AUTHORIZE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          country_code: US
          currency_code: USD
          payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
          shop_name: my shop
          shop_url: https://shop.com
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
          transactions:
            - transaction_id: 2E2CL7BTK23K3
              transaction_type: SALE
              transaction_status: SUCCESS
              created_at: '2022-05-13T12:24:37.094Z'
              response_code: 1000
              response_text: Success
              transaction_details:
                processor_merchant_account_id: '28148'
                processor_transaction_id: '104335314'
                processor: PAYABL
                processor_response_code: '0'
                processor_response_text: Response text example
                cascade_attempt: '0'
                has_been_cascaded: false
                arn: '331700997347'
              payment_details:
                payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
                card_scheme: MASTERCARD
                card_bin: '523205'
                card_last_four_digits: '0003'
                customer_full_name: John Doe
                customer_phone_number: '1234567890'
                customer_email: johndoe@gmail.com
                customer_first_name: John
                customer_last_name: Doe
                payment_token_type: CARD
                card_expiry_month: '12'
                card_expiry_year: '2024'
    syncMitAuthorizeResponseError:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: MIT_AUTHORIZE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          country_code: US
          currency_code: USD
          payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
          shop_name: my shop
          shop_url: https://shop.com
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
          transactions:
            - transaction_id: 2E2CL7BTK23K3
              transaction_type: SALE
              transaction_status: ERROR
              created_at: '2022-05-13T12:24:37.094Z'
              response_code: 2901
              response_text: Integration error
              transaction_details:
                processor_merchant_account_id: '28148'
                processor: PAYABL
              payment_details:
                card_scheme: MASTERCARD
                card_bin: '523205'
                card_last_four_digits: '0003'
                customer_full_name: John Doe
                customer_phone_number: '1234567890'
                customer_email: johndoe@gmail.com
                customer_first_name: John
                customer_last_name: Doe
                payment_token_type: CARD
                card_expiry_month: '12'
                card_expiry_year: '2024'
    successMitAuthorizePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: AUTHORIZE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: MIT_AUTHORIZE
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            country_code: US
            amount: '9.99'
            currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.00'
            transaction_fee_currency_code: GBP
            base_amount: '9.46'
            base_currency_code: EUR
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
    errorMitAuthorizePostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: AUTHORIZE
          transaction_status: ERROR
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 2901
          response_text: Integration error
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor: PAYABL
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: MIT_AUTHORIZE
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            amount: '5.00'
            currency_code: USD
            transaction_amount: '3.98'
            transaction_currency_code: GBP
            base_amount: '4.46'
            base_currency_code: EUR
            email: john_doe@upgate.com
            country_code: CY
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: P_001
                product_id: 2JZGULPNK27K2
                product_type: SALE
                product_price: '5.00'
                product_transaction_price: '3.98'
                product_name: Test product name
                product_description: Test product description
    recurringRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '9.99'
        currency_code: USD
        email: john_doe@upgate.com
        language: en-us
        country_code: US
        forced_3d: false
        success_url: https://example.com/success
        failure_url: https://example.com/failure
        shop_name: my shop
        shop_url: https://shop.com
        products:
          - merchant_product_id: R_001
            product_type: SUBSCRIPTION
            product_price: '9.99'
            product_name: Test product name
            product_description: Test product description
            charge_interval: DAY
            charge_interval_value: 30
            is_trial: false
    trialRecurringRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '9.99'
        currency_code: USD
        email: john_doe@upgate.com
        language: en-us
        country_code: US
        forced_3d: false
        success_url: https://example.com/success
        failure_url: https://example.com/failure
        shop_name: my shop
        shop_url: https://shop.com
        products:
          - merchant_product_id: R_001
            product_type: SUBSCRIPTION
            product_price: '9.99'
            product_name: Test product name
            product_description: Test product description
            charge_interval: DAY
            charge_interval_value: 30
            is_trial: true
            trial_interval_value: 4
            trial_interval: DAY
    recurringResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2JWYCAOYS67K2
          payment_type: RECURRING
          payment_method: CARD
          created_at: '2023-03-02T14:51:50.779Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          amount: '9.99'
          currency_code: USD
          base_amount: '9.46'
          base_currency_code: EUR
          email: john_doe@upgate.com
          language: en-us
          country_code: US
          forced_3d: true
          success_url: https://example.com/success
          failure_url: https://example.com/failure
          shop_name: my shop
          shop_url: https://shop.com
          session:
            created_at: '2023-03-02T14:51:50.779Z'
            expires_at: '2023-03-02T15:06:50.779Z'
            redirect_url: https://hub.dev.upgate.dev/redirect/?sessionId=2JWYCAOYS27K2
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SUBSCRIPTION
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
              charge_interval: DAY
              charge_interval_value: 30
              rebill_transaction_amount: '9.99'
              rebill_transaction_currency_code: USD
              rebill_transaction_fee_amount: '1.00'
              rebill_transaction_fee_currency_code: USD
              is_trial: false
    trialRecurringResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2JWYCAOYS67K2
          payment_type: RECURRING
          payment_method: CARD
          created_at: '2023-03-02T14:51:50.779Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          amount: '9.99'
          currency_code: USD
          email: john_doe@upgate.com
          language: en-us
          country_code: US
          forced_3d: true
          success_url: https://example.com/success
          failure_url: https://example.com/failure
          shop_name: my shop
          shop_url: https://shop.com
          session:
            created_at: '2023-03-02T14:51:50.779Z'
            expires_at: '2023-03-02T15:06:50.779Z'
            redirect_url: https://hub.dev.upgate.dev/redirect/?sessionId=2JWYCAOYS27K2
          products:
            - merchant_product_id: R_001
              product_type: SUBSCRIPTION
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
              charge_interval: DAY
              charge_interval_value: 30
              is_trial: true
              trial_interval_value: 4
              trial_interval: DAY
              rebill_transaction_amount: '9.99'
              rebill_transaction_currency_code: USD
              rebill_transaction_fee_amount: '1.00'
              rebill_transaction_fee_currency_code: USD
    successRecurringTransactionPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: SALE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
            customer_selected_country_code: GB
          payment:
            initial_subscription_id: 2E2CL5M3KC7K3
            payment_id: 2E2CL5R3KC7K3
            payment_type: RECURRING
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            language: en-us
            amount: '9.99'
            country_code: US
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.99'
            transaction_fee_currency_code: GBP
            currency_code: USD
            base_amount: '9.46'
            base_currency_code: EUR
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SUBSCRIPTION
                product_price: '9.99'
                product_transaction_price: '7.98'
                product_name: Test product name
                product_description: Test product description
                charge_interval: DAY
                charge_interval_value: 30
                rebill_transaction_amount: '9.99'
                rebill_transaction_currency_code: USD
                rebill_transaction_fee_amount: '1.99'
                rebill_transaction_fee_currency_code: USD
                is_trial: false
    successRecurringSubscriptionPostback:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2P2G5SSKK2DK2
          created_at: '2022-04-15T10:54:03.633Z'
          subscription_status: ACTIVE
          expires_at: '2022-05-14T10:54:03.633Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_customer_id: U_001
          payment_method: CARD
          amount: '9.99'
          currency_code: USD
          transaction_amount: '7.87'
          transaction_currency_code: GBP
          transaction_fee_amount: '1.99'
          transaction_fee_currency_code: GBP
          is_trial: false
          charge_interval: DAY
          charge_interval_value: 30
          is_rebill_enabled: true
          retry_at: '2022-05-14T10:54:03.633Z'
          retry_count: 0
          shop_name: Shop name
          shop_url: https://shop.com
          initial_transaction_id: 2E2CL7BTK23K3
          version: 1
    successTrialRecurringTransactionPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: AUTHORIZE
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: RECURRING
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            amount: '9.99'
            currency_code: USD
            base_amount: '9.99'
            base_currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SUBSCRIPTION
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
                charge_interval: DAY
                charge_interval_value: 30
                is_trial: true
                trial_interval_value: 4
                trial_interval: DAY
                rebill_transaction_amount: '9.99'
                rebill_transaction_currency_code: USD
                rebill_transaction_fee_amount: '1.00'
                rebill_transaction_fee_currency_code: USD
    successTrialRecurringSubscriptionPostback:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2P2G5SSKK2DK2
          created_at: '2022-04-15T10:54:03.633Z'
          subscription_status: ACTIVE
          expires_at: '2022-04-19T10:54:03.633Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_customer_id: U_001
          payment_method: CARD
          amount: '9.99'
          currency_code: USD
          transaction_amount: '7.87'
          transaction_currency_code: GBP
          is_trial: true
          charge_interval: DAY
          charge_interval_value: 30
          is_rebill_enabled: true
          retry_at: '2022-04-19T10:54:03.633Z'
          retry_count: 0
          shop_name: test shop
          shop_url: https://test.shop
          initial_transaction_id: 2E2CL7BTK23K3
          version: 1
    errorRecurringTransactionPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: SALE
          transaction_status: ERROR
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 2901
          response_text: Integration error
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor: PAYABL
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2JWYCAOYS67K2
            payment_type: RECURRING
            payment_method: CARD
            created_at: '2023-03-02T14:51:50.779Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            amount: '9.99'
            currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            base_amount: '9.46'
            base_currency_code: EUR
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SUBSCRIPTION
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
                charge_interval: DAY
                charge_interval_value: 30
                is_trial: false
    errorTrialRecurringTransactionPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: AUTHORIZE
          transaction_status: ERROR
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 2901
          response_text: Integration error
          version: 1
          transaction_details:
            processor_merchant_account_id: '28148'
            processor: PAYABL
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2JWYCAOYS67K2
            payment_type: RECURRING
            payment_method: CARD
            created_at: '2023-03-02T14:51:50.779Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            amount: '9.99'
            currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            email: john_doe@upgate.com
            language: en-us
            country_code: US
            forced_3d: true
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: null
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SUBSCRIPTION
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
                charge_interval: DAY
                charge_interval_value: 30
                is_trial: true
                trial_interval_value: 4
                trial_interval: DAY
                rebill_transaction_amount: '9.99'
                rebill_transaction_currency_code: USD
    successRebillTransactionPostback:
      value:
        type: TRANSACTION
        data:
          transaction_i: 2JXMSVSLS25K2
          transaction_type: SALE
          transaction_status: SUCCESS
          created_at: '2023-03-03T14:46:20.487Z'
          response_code: 1000
          response_text: Success
          version: 1
          transaction_details:
            processor_merchant_account_id: account_id
            processor_transaction_id: '101140564'
            processor: PAYABL
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '510000'
            card_last_four_digits: '0008'
            customer_full_name: QA Autotests
            card_expiry_month: '3'
            card_expiry_year: '2025'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2JXMSVP3K2DK2
            payment_type: RECURRING
            payment_method: CARD
            created_at: '2023-03-03T14:46:20.038Z'
            merchant_id: UpGate
            merchant_customer_id: '777'
            amount: '10.01'
            currency_code: USD
            base_amount: '10.01'
            base_currency_code: USD
            transaction_amount: '7.87'
            transaction_currency_code: GBP
            transaction_fee_amount: '1.99'
            transaction_fee_currency_code: GBP
            email: john_dow@upgate.com
            country_code: CY
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shop_name: my shop
            shop_url: https://shop.com
            initial_subscription_id: 2LXOSVP3K2DK2
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SUBSCRIPTION
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
                charge_interval: DAY
                charge_interval_value: 30
                rebill_transaction_amount: '9.99'
                rebill_transaction_currency_code: USD
                rebill_transaction_fee_amount: '1.99'
                rebill_transaction_fee_currency_code: USD
                is_trial: false
    successRebillSubscriptionPostback:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2P2G5SSKK2DK2
          created_at: '2022-04-15T10:54:03.633Z'
          subscription_status: ACTIVE
          expires_at: '2022-06-14T10:54:03.633Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_customer_id: U_001
          payment_method: CARD
          amount: '9.99'
          currency_code: USD
          transaction_amount: '7.87'
          transaction_currency_code: GBP
          transaction_fee_amount: '1.99'
          transaction_fee_currency_code: GBP
          is_trial: false
          charge_interval: DAY
          charge_interval_value: 30
          is_rebill_enabled: true
          retry_at: '2022-06-14T10:54:03.633Z'
          retry_count: 0
          shop_name: Shop name
          shop_url: https://shop.com
          initial_transaction_id: 2E2CL7BTK23K3
          version: 1
    errorRebillTransactionPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2JXMV6XVC25K2
          transaction_type: SALE
          transaction_status: ERROR
          created_at: '2023-03-03T14:51:20.173Z'
          response_code: 2901
          response_text: Integration error
          version: 1
          transaction_details:
            processor_merchant_account_id: account_id
            processor: EMERCHANTPAY
          payment_details:
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: E E
            card_expiry_month: '9'
            card_expiry_year: '2023'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2JXMV6WPC2DK2
            payment_type: RECURRING
            payment_method: CARD
            created_at: '2023-03-03T14:51:20.021Z'
            merchant_id: UpGate
            merchant_customer_id: '777'
            amount: '333.12'
            currency_code: EUR
            transaction_amount: '285.20'
            transaction_currency_code: GBP
            base_amount: '333.12'
            base_currency_code: EUR
            email: john_dow@upgate.com
            country_code: CY
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            shopName: test shop
            shopUrl: https://test.shop
            products:
              - merchant_product_id: R_001
                product_id: 2JZGULPNK27K2
                product_type: SUBSCRIPTION
                product_price: '9.99'
                product_transaction_price: '7.87'
                product_name: Test product name
                product_description: Test product description
                charge_interval: DAY
                charge_interval_value: 30
                is_trial: false
    errorRebillSubscriptionPostback:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2P2G5SSKK2DK2
          created_at: '2022-04-15T10:54:03.633Z'
          subscription_status: ACTIVE
          expires_at: '2022-06-14T10:54:03.633Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_customer_id: U_001
          payment_method: CARD
          amount: '9.99'
          currency_code: USD
          transaction_amount: '7.87'
          transaction_currency_code: GBP
          is_trial: false
          charge_interval: DAY
          charge_interval_value: 30
          is_rebill_enabled: true
          retry_at: '2022-06-17T10:54:03.633Z'
          retry_count: 1
          shop_name: test shop
          shop_url: https://test.shop
          initial_transaction_id: 2E2CL7BTK23K3
          version: 1
    enableSubscriptionPostback:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2JWZGUKDK2DK2
          created_at: '2023-02-15T16:11:50.694Z'
          subscription_status: ACTIVE
          expires_at: '2023-03-13T16:11:50.694Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_payment_id: P_001
          merchant_customer_id: '777'
          payment_method: CARD
          currency_code: USD
          amount: '10.01'
          transaction_amount: '7.87'
          is_trial: false
          charge_interval: DAY
          charge_interval_value: 11
          is_rebill_enabled: true
          retry_at: '2023-03-13T16:11:50.694Z'
          retry_count: 0
          retry_total_count: 2
          shop_name: test shop
          shop_url: https://test.shop
          initial_transaction_id: 2E2CL7BTK23K3
          version: 1
    subscriptionListResponse:
      value:
        type: SUBSCRIPTION
        data:
          - subscription_id: 2JWZGUKDK2DK2
            created_at: '2023-02-15T16:11:50.694Z'
            subscription_status: ACTIVE
            expires_at: '2023-03-13T16:11:50.694Z'
            merchant_id: UpGate
            payment_id: 2E2CL5R3KC7K3
            product_id: 2JZGULPNK27K2
            merchant_product_id: R_001
            merchant_payment_id: P_001
            merchant_customer_id: '777'
            payment_method: CARD
            currency_code: USD
            amount: '10.01'
            is_trial: false
            charge_interval: DAY
            charge_interval_value: 11
            is_rebill_enabled: true
            retry_at: '2023-03-13T16:11:50.694Z'
            retry_count: 0
            retry_total_count: 2
          - subscription_id: 2JWZGUKDK2DK9
            created_at: '2024-03-10T11:09:44.832Z'
            subscription_status: ACTIVE
            expires_at: '2024-09-10T11:09:44.832Z'
            merchant_id: UpGate
            payment_id: 2E2CL5R9KC7K0
            product_id: 2JZGULPRK27K1
            merchant_product_id: R_002
            merchant_payment_id: P_002
            merchant_customer_id: '777'
            payment_method: CARD
            currency_code: USD
            amount: '111.50'
            is_trial: false
            charge_interval: DAY
            charge_interval_value: 11
            is_rebill_enabled: true
            retry_at: '2024-06-10T11:09:44.832Z'
            retry_count: 0
            retry_total_count: 2
        meta:
          pageNumber: 1
          pageSize: 100
    enableSubscription:
      value:
        is_rebill_enabled: true
    disableSubscription:
      value:
        is_rebill_enabled: false
    enableSubscriptionResponse:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2JWZGUKDK2DK2
          created_at: '2023-02-15T16:11:50.694Z'
          subscription_status: ACTIVE
          expires_at: '2023-03-13T16:11:50.694Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_payment_id: P_001
          merchant_customer_id: '777'
          payment_method: CARD
          currency_code: USD
          amount: '10.01'
          is_trial: false
          charge_interval: DAY
          charge_interval_value: 11
          is_rebill_enabled: true
          retry_at: '2023-03-13T16:11:50.694Z'
          retry_count: 0
          retry_total_count: 2
    disableSubscriptionResponse:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2JWZGUKDK2DK2
          created_at: '2023-02-15T16:11:50.694Z'
          subscription_status: ACTIVE
          expires_at: '2023-03-13T16:11:50.694Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_payment_id: P_001
          merchant_customer_id: '777'
          payment_method: CARD
          currency_code: USD
          amount: '10.01'
          is_trial: false
          charge_interval: DAY
          charge_interval_value: 11
          is_rebill_enabled: false
          retry_at: '2023-03-13T16:11:50.694Z'
          retry_count: 0
          retry_total_count: 2
          shop_name: test shop
          shop_url: https://test.shop
    '500_2':
      value:
        timestamp: '2024-04-12T09:30:36.424+00:00'
        status: 500
        error: Internal Server Error
        message: Something went wrong
        path: /api/merchant-operations/v4/subscription/2IOZPJIDK2DK3
    disableSubscriptionPostback:
      value:
        type: SUBSCRIPTION
        data:
          subscription_id: 2JWZGUKDK2DK2
          created_at: '2023-02-15T16:11:50.694Z'
          subscription_status: ACTIVE
          expires_at: '2023-03-13T16:11:50.694Z'
          merchant_id: UpGate
          payment_id: 2E2CL5R3KC7K3
          product_id: 2JZGULPNK27K2
          merchant_product_id: R_001
          merchant_payment_id: P_001
          merchant_customer_id: '777'
          payment_method: CARD
          currency_code: USD
          amount: '10.01'
          transaction_amount: '7.87'
          is_trial: false
          charge_interval: DAY
          charge_interval_value: 11
          is_rebill_enabled: false
          retry_at: '2023-03-13T16:11:50.694Z'
          retry_count: 0
          retry_total_count: 2
          shop_name: test shop
          shop_url: https://test.shop
          initial_transaction_id: 2E2CL7BTK23K3
          version: 1
    tokenRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        email: john_doe@upgate.com
        language: en-us
        country_code: US
        prefilled_card_holder: John Doe
        success_url: https://example.com/success
        failure_url: https://example.com/failure
    tokenResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: TOKEN
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          language: en-us
          country_code: US
          prefilled_card_holder: John Doe
          success_url: https://example.com/success
          failure_url: https://example.com/failure
          shop_name: my shop
          shop_url: https://shop.com
          session:
            created_at: '2022-04-15T10:54:03.633Z'
            expires_at: '2022-04-15T11:09:03.633Z'
            redirect_url: https://upgate.com/redirect/?sessionId=2DIAIPQWC67K2
    successTokenPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: TOKEN
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          version: 1
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            card_scheme: MASTERCARD
            card_bin: '523205'
            card_last_four_digits: '0003'
            customer_full_name: John Doe
            customer_phone_number: '1234567890'
            customer_email: johndoe@gmail.com
            customer_first_name: John
            customer_last_name: Doe
            payment_token_type: CARD
            card_expiry_month: '12'
            card_expiry_year: '2024'
            card_data_id: 2VNRH5IP22E24
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: TOKEN
            payment_method: CARD
            created_at: '2022-05-13T12:24:30.854Z'
            merchant_id: UpGate
            merchant_customer_id: U_001
            merchant_payment_id: P_001
            email: john_doe@upgate.com
            country_code: CY
            language: en-cy
            success_url: https://example.com/success
            failure_url: https://example.com/failure
            shop_name: my shop
            shop_url: https://shop.com
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
            initial_subscription_id: null
    cardPayoutRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '9.99'
        currency_code: USD
        payment_details:
          payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
    cryptoPayoutRequest:
      value:
        payment_method: CRYPTO
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '0.1'
        currency_code: USDT
        payment_details:
          crypto_network: TRON
          crypto_address: TBia4uHnb3oSSZm5isP284cA7Np1v15Vhi
          crypto_withdrawal_address: TBia4uHnb3oSSZm5isP284cA7Np1v15Vhi
    sepaPayoutRequest:
      value:
        payment_method: SEPA
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '100'
        currency_code: GBP
        payment_details:
          creditor_name: JOHN SMITH
          creditor_bank_name: BANK NAME
          creditor_bank_bic: '12345678901'
          creditor_bank_account: '1234567890112345678901'
    paxumPayoutRequest:
      value:
        payment_method: PAXUM
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '100'
        currency_code: USD
        description: 'Profile Name: John Smith; D.O.B: 1980/01/01; Invoice 123456'
        payment_details:
          payment_email: admin@example.com
          beneficiary_email: test@test.com
          reference: some reference
    response:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: PAYOUT
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          amount: '9.99'
          currency_code: USD
          base_currency_code: EUR
          base_amount: '9.46'
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
    successPostback:
      value:
        type: TRANSACTION
        data:
          transaction_id: 2E2CL7BTK23K3
          transaction_type: PAYOUT
          transaction_status: SUCCESS
          created_at: '2022-05-13T12:24:37.094Z'
          response_code: 1000
          response_text: Success
          transaction_details:
            processor_merchant_account_id: '28148'
            processor_transaction_id: '104335314'
            processor: TRUSTPAY
            processor_response_code: '0'
            processor_response_text: Response text example
            cascade_attempt: '0'
            has_been_cascaded: false
            arn: '331700997347'
          payment_context:
            browser_user_agent: PostmanRuntime/7.29.0
            browser_screen_height: '8'
            browser_color_depth: '7'
            browser_language: '6'
            browser_timezone_offset: '10'
            browser_screen_width: '9'
            challenge_window_size: '04'
            browser_has_js_enabled: 'true'
            browser_has_java_enabled: 'true'
            browser_accept_header: '*/*'
            ip: 192.168.0.1
          payment_details:
            payment_token_id: +wjPh608B8r2B2b3bG8IxARp6c1LqojODr/d19/ZPUE=
          payment:
            payment_id: 2E2CL5R3KC7K3
            payment_type: PAYOUT
            payment_method: CARD
            created_at: '2022-04-15T10:54:03.633Z'
            merchant_id: UpGate
            merchant_payment_id: P_001
            merchant_customer_id: U_001
            amount: '9.99'
            currency_code: USD
            transaction_amount: '9.99'
            transaction_currency_code: USD
            base_amount: '9.46'
            base_currency_code: EUR
    saleRequest:
      value:
        payment_method: CARD
        merchant_payment_id: P_001
        merchant_customer_id: U_001
        amount: '9.99'
        currency_code: USD
        email: john_doe@upgate.com
        language: en-us
        country_code: US
        forced_3d: true
        success_url: https://example.com/success
        failure_url: https://example.com/failure
        shop_name: my shop
        shop_url: https://shop.com
        products:
          - merchant_product_id: R_001
            product_type: SALE
            product_price: '9.99'
            product_name: Test product name
            product_description: Test product description
    saleResponse:
      value:
        type: PAYMENT
        data:
          payment_id: 2E2CL5R3KC7K3
          payment_type: SALE
          payment_method: CARD
          created_at: '2022-04-15T10:54:03.633Z'
          merchant_id: UpGate
          merchant_payment_id: P_001
          merchant_customer_id: U_001
          email: john_doe@upgate.com
          amount: '9.99'
          language: en-us
          country_code: US
          currency_code: USD
          base_amount: '9.46'
          base_currency_code: EUR
          forced_3d: true
          success_url: https://example.com/success
          failure_url: https://example.com/failure
          shop_name: my shop
          shop_url: https://shop.com
          session:
            created_at: '2022-04-15T10:54:03.633Z'
            expires_at: '2022-04-15T11:09:03.633Z'
            redirect_url: https://upgate.com/redirect/?sessionId=2DIAIPQWC67K2
          products:
            - merchant_product_id: R_001
              product_id: 2JZGULPNK27K2
              product_type: SALE
              product_price: '9.99'
              product_name: Test product name
              product_description: Test product description
