openapi: 3.1.0
info:
  title: Payment Gateways Introduction
  description: |
    Payments for orders are processed through a payment gateway. Composable Commerce offers integrations for a selection of payment gateway providers, or you can create your own integrations.
    
    Payment transactions are processed similarly for all gateways:

    1. A payment transaction is created and an attempt to pay is made.
    2. The transaction is forwarded to the third-party gateway specified by the customer.
    3. The payment is processed by the third-party gateway.
    
    Payment transactions are always processed outside of Composable Commerce for security reasons. Typically, you use a token rather than pass the card details directly. If, however, you want to pass the cart details directly to the third-party provider, Composable Commerce enforces the use of the secure HTTPS protocol. If the transaction is successful, a `200 OK` response is returned. Use the response (success or failure) to update the transaction, which automatically updates the order and payment statuses.
    
    A payment transaction can also be refunded. You can select which way you want to process refunds:

    - Mark as Refunded: You can use your payment gateway’s console to process a refund. Process the refund first in the payment gateway and then use the **Mark as Refunded** capability in Composable Commerce to complete the process.
    - Refund through Composable Commerce: Start a full or partial refund to a supported payment provider directly from Commerce Manager or the API. You still have the ability to mark as refunded for a pre-integrated gateway, such as Stripe.
    
    :::info
    
    For nonce-based Authorize.net transactions, if a refund is requested before the transaction has settled (typically within 24 hours), the transaction will be voided instead of refunded. This behavior is specific to nonce-based payments.
    
    :::
    
    :::caution
    
    Configure your store to use [Manual Gateway](/docs/api/payments/update-manual-gateway) to process payments if the order total is zero or the payment is through non-supported payment providers.
    
    :::
    
    ### Order Status Workflow
    
    The following image shows the workflow of the order status when you checkout a cart.
    
    ![Order Workflow](/assets/Order-Workflow.png)
    
    ### Summary of the Workflow
    
    1. [Checkout a cart](/docs/api/carts/checkout). When you checkout a cart, an unpaid order is returned.
    2. [Paying for an order](/docs/api/carts/payments). You can process the payment for an order through a payment gateway. You can pay for an order either using purchase payment method or authorize payment method.
    3. Confirm the order. Order confirmation might be required when you purchase or authorize a transaction. If you use a purchase method, the order is immediately confirmed. If you use authorize method, funds are captured later when an item is dispatched or restocked, and then the order is considered as complete. See [Capture a Transaction](https://elasticpath.dev/docs/commerce-cloud/payments/transactions/capture-a-transaction).
    4. [Fulfill, Refund or Cancel the paid order](/docs/api/carts/refund-a-transaction). The order is considered as fulfilled when it is shipped. You can cancel the order after the checkout or if the order is not fulfilled. You can also choose to refund a partial payment or full payment.
    5. (Optional) [Cancel a transaction](/docs/api/carts/cancel-a-transaction). You can cancel or void a pending or authorized transaction. The transaction can be canceled or voided when it is in pending and completed statuses. This works only for Stripe and PayPal and does not work for manual gateway.
    6. (Optional) [Anonymize an order](/docs/api/carts/anonymize-orders). You can anonymize an order when it is fulfilled, canceled, or fully refunded.
    
    ### Split Payments
    
    Split payments involve multiple payment sources for a single order, using externally authorized payments. For example, you can pay for an order using a gift card and a credit card. An order with multiple payment transactions can also be in multiple payment states depending on each transaction.
    
    Transactions for split payments are processed similarly for all gateways:

    1. A partial payment transaction is created and an attempt to pay the partial amount is made.
    2. The transaction for the specified amount is forwarded to the payment gateway specified by the customer.
    3. The partial payment is processed.
    4. Another partial payment transaction is created and an attempt to pay the remaining amount is made.
    5. Another transaction for the remaining amount is forwarded to the payment gateway specified by the customer.
    6. The payment is processed, paid, and complete. The payment status must show paid after the order is completed.
    
    You can refund transactions for split payments. For more information about refund, see Refund a Payment.
    
    The following scenarios show how a shopper can use multiple sources for split payment:
    
    - Gift card and credit card
    - Purchase order and credit card
    - Store credit and credit card
    - Employee dollars and credit card
    - Gift card and loyalty card
    - Loyalty card and wallet
    
    The following image shows a workflow of the split payments.
    
    ![Split Payments](/assets/split-payment-workflow.png)
    
    The following table describes the payment and order statuses that you can see when an order is passed through multiple stages.
    
    | Payment Status   | Order Status | Inventory Status     | Description |
    |:-----------------|:-------------|:---------------------|:------------|
    | `partially_authorized` | `incomplete` |	Allocated	| Indicates that the payment is partially_authorized and the balance_owing value is greater than zero. In this case, one of the transactions is authorized and complete. |
    | `partially_paid`  | `incomplete` |Allocated |	Indicates that the funds are captured but the balance_owing value is greater than zero. In this case, one of the transactions is captured or purchase is complete. |
    | `unpaid` | `incomplete` |	Not Allocated |	Indicates that the order does not have any complete payment transactions. In this case, all the transactions or any of the transactions can be still pending. |
    | `authorized`	| `processing`	| Allocated | 	Indicates that completed transactions cover the entire total amount for an order and at least one of the transactions is authorized. |
    | `paid` |	`complete`	| Allocated | Indicates that the order is complete and the amount for the order is fully paid when all authorized transactions are captured or purchase transactions are complete. |
  contact:
    name: Elastic Path
    url: https://elasticpath.com
  version: 25.1125.6251808
servers:
  - url: https://useast.api.elasticpath.com
    description: US East Production Server
    variables: { }
  - url: https://euwest.api.elasticpath.com
    description: EU West Production Server
    variables: { }
paths:
  /v2/gateways:
    get:
      tags:
        - Gateways
      summary: Get all Gateways
      description: Retrieves all gateways.
      operationId: getAllGateways
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: array
                        items:
                          $ref: '#/components/schemas/Response.Gateway'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/{gatewaySlug}:
    get:
      tags:
        - Gateways
      summary: Get a Gateway
      description: Retrieves the specified gateway.
      operationId: getAGateway
      parameters:
        - name: gatewaySlug
          in: path
          description: The slug of the gateway.
          required: true
          schema:
            type: string
            enum:
              - manual
              - braintree
              - stripe
              - stripe_payment_intents
              - elastic_path_payments_stripe
              - paypal_express_checkout
              - adyen
              - authorize_net
              - card_connect
              - cyber_source
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        $ref: '#/components/schemas/Response.Gateway'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/manual:
    put:
      tags:
        - Gateways
      summary: Update Manual Gateway
      description: This endpoint allows you update the manual gateway.
      operationId: updateManualGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/Request.UpdateManualGateway'
              contentMediaType: application/json
            examples:
              default:
                value:
                  data:
                    enabled: true
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        properties:
                          enabled:
                            description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
                            example: true
                            type: boolean
                          name:
                            description: Specifies the nme of the gateway.
                            example: Manual
                            type: string
                          slug:
                            description: Specifies the slug of the gateway.
                            example: manual
                            type: string
                          type:
                            description: Specifies the type of object being returned.
                            example: gateway
                            type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/braintree:
    put:
      tags:
        - Gateways
      summary: Update Braintree Gateway
      description: Use this endpoint to configure Braintree.
      operationId: updateBraintreeGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Request.UpdateBraintreeGateway'
              contentMediaType: application/json
            examples:
              default:
                value:
                  data:
                    enabled: true
                    environment: sandbox
                    merchant_id: '{{braintreeMerchantId}}'
                    private_key: '{{braintreePrivateKey}}'
                    public_key: '{{braintreePublicKey}}'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        properties:
                          enabled:
                            description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
                            example: true
                            type: boolean
                          name:
                            description: Specifies the name of the gateway.
                            example: Braintree
                            type: string
                          environment:
                            description: Specifies production or sandbox environment.
                            example: sandbox
                            type: string
                          merchant_id:
                            description: Specifies Your Braintree merchant ID.
                            example: '{{braintreeMerchantId}}'
                            type: string
                          private_key:
                            description: Represents Your Braintree private key.
                            example: '{{braintreePrivateKey}}'
                            type: string
                          public_key:
                            description: Indicates Your Braintree public key.
                            example: '{{braintreePublicKey}}'
                            type: string
                          slug:
                            description: Represents the slug of the gateway.
                            example: braintree
                            type: string
                          type:
                            description: Specifies the type of object being returned.
                            example: gateway
                            type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/stripe:
    put:
      tags:
        - Gateways
      summary: Update Stripe Gateway
      description: Use this endpoint to configure Stripe.
      operationId: updateStripeGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Request.UpdateStripeGateway'
              contentMediaType: application/json
            examples:
              default:
                value:
                  data:
                    enabled: true
                    login: '{{stripeToken}}'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        properties:
                          enabled:
                            description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
                            example: true
                            type: boolean
                          login:
                            description: Represents Stripe test or live secret key.
                            example: '{{stripeToken}}'
                            type: string
                          name:
                            description: Specifies the name of the gateway.
                            example: Stripe
                            type: string
                          slug:
                            description: Represents the slug of the gateway.
                            example: stripe
                            type: string
                          type:
                            description: Specifies the type of object being returned.
                            example: gateway
                            type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/stripe_payment_intents:
    put:
      tags:
        - Gateways
      summary: Update Stripe Payment Intents Gateway
      description: Use this endpoint to configure Stripe Payment Intents.
      operationId: updateStripeIntentsGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Request.UpdateStripeGateway'
              contentMediaType: application/json
            examples:
              default:
                value:
                  data:
                    enabled: true
                    login: '{{stripeLoginToken}}'
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        properties:
                          enabled:
                            description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
                            example: true
                            type: boolean
                          login:
                            description: Specifies the Stripe secret key for your account that is in live or test mode.
                            example: '{{stripeLoginToken}}'
                            type: string
                          name:
                            description: Specifies the name of the gateway.
                            example: Stripe Payment Intents
                            type: string
                          slug:
                            description: Represents the slug of the gateway.
                            example: stripe_payment_intents
                            type: string
                          type:
                            description: Specifies the type of object being returned.
                            example: gateway
                            type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/elastic_path_payments_stripe:
    put:
      tags:
        - Gateways
      summary: Update Elastic Path Payments Powered by Stripe
      description: |
        Use this endpoint to configure Elastic Path Payments Powered by Stripe in Commerce. 
        
        :::note
        
        You can contact Elastic Path sales or [customer success team](mailto:customersuccess@elasticpath.com) to get more information about Elastic Path Payments Powered by Stripe and to check whether it will work for you.
        
        :::
      operationId: updateEpPaymentsStripe
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Request.UpdateElasticPathPaymentsStripeGateway'
              contentMediaType: application/json
            examples:
              default:
                value:
                  data:
                    enabled: true
                    stripe_account: '{{stripeAccountId}}'
                    test: true
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        properties:
                          enabled:
                            description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
                            example: true
                            type: boolean
                          stripe_account:
                            description: Specifies the Stripe account ID.
                            example: '{{stripeAccountId}}'
                            type: string
                          name:
                            description: Specifies the name of the gateway.
                            example: Elastic Path Payments powered by Stripe
                            type: string
                          test:
                            description: Specifies whether the test mode is enabled. Set `true` to enable test mode and `false` to disable the test mode. Default is `false`.
                            example: true
                            type: boolean
                          slug:
                            description: Represents the slug of the gateway.
                            example: elastic_path_payments_stripe
                            type: string
                          type:
                            description: Specifies the type of object being returned.
                            example: gateway
                            type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/paypal_express_checkout:
    put:
      tags:
        - Gateways
      summary: Update PayPal Express Checkout
      description: |
        Use this endpoint to configure PayPal Express Checkout. 
        :::note
        
        To learn more about PayPal Express Checkout and check whether it will work for you, contact your sales or [customer success team](mailto:customersuccess@elasticpath.com).
        
        :::
      operationId: updatePaypalExpressCheckoutGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Request.UpdatePaypalExpressCheckoutGateway'
              contentMediaType: application/json
            examples:
              default:
                value:
                  data:
                    enabled: true
                    payer_id: '{{merchant account id}}'
                    test: true
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        properties:
                          enabled:
                            description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
                            example: true
                            type: boolean
                          payer_id:
                            description: Specifies the merchant account ID. The ID is displayed in the PayPal account details of the merchant.
                            example: '{{merchant account id}}'
                            type: string
                          name:
                            description: Specifies the name of the gateway.
                            example: PayPal Express Checkout
                            type: string
                          test:
                            description: Specifies whether the test mode is enabled. Set `true` to enable test mode and `false` to disable the test mode. Default is `false`.
                            example: true
                            type: boolean
                          slug:
                            description: Represents the slug of the gateway.
                            example: paypal_express_checkout
                            type: string
                          type:
                            description: Specifies the type of object being returned.
                            example: gateway
                            type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/adyen:
    put:
      tags:
        - Gateways
      summary: Update Adyen Gateway
      description: Use this endpoint to configure Adyen.
      operationId: updateAdyenGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAdyenGatewayRequest'
            examples:
              default:
                value:
                  data:
                    enabled: true
                    merchant_account: 'MyCompanyECOM'
                    username: 'ws@Company.MyCompany'
                    password: 'xxx'
                    test: false
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        allOf:
                          - $ref: '#/components/schemas/Response.Gateway'
                          - properties:
                              merchant_account:
                                description: Represents your Adyen merchant account code. For example, MyCompanyECOM.
                                type: string
                                example: MyCompanyECOM
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/authorize_net:
    put:
      tags:
        - Gateways
      summary: Update Authorize.net Gateway
      description: |
      
        Use this endpoint to configure Authorize.net.
        
        :::note
        The credentials used for a test account may differ from those used for a live account. When configuring the payment gateway with your credentials and setting `test` to `true`, the system allows you to test various Authorize.net payment interactions to ensure everything works as expected. Once you are ready to go live, update `test` as `false` to direct requests to the live endpoints instead of the test account. Additionally, ensure that you switch to the credentials for the live account when making this change. To access your sandbox environment, see [Authorize.net Sandbox account](https://developer.authorize.net/hello_world/sandbox.html).
        :::
      operationId: updateAuthorizeNetGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              allOf:
                - $ref: '#/components/schemas/Request.UpdateAuthorizeNetGateway'
            examples:
              default:
                value:
                  data:
                    login: 'xxx'
                    password: 'xxx'
                    slug: 'authorize_net'
                    enabled: true
                    test: true
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        allOf:
                          - $ref: '#/components/schemas/Response.Gateway'
                          - properties:
                              password:
                                description: Indicates Authorize.net Transaction Key.
                                type: string
                                example: 'authorize-net-transaction-key'

        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/card_connect:
    put:
      tags:
        - Gateways
      summary: Update CardConnect Gateway
      description: Use this endpoint to configure CardConnect.
      operationId: updateCardConnectGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Request.UpdateCardConnectGateway'
            examples:
              default:
                value:
                  data:
                    merchant_id: 'xxx'
                    username: 'xxx'
                    password: 'xxx'
                    test: false
                    enabled: false
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        allOf:
                          - $ref: '#/components/schemas/Response.Gateway'
                          - properties:
                              merchant_id:
                                description: Specifies your CardConnect Merchant ID.
                                type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
  /v2/gateways/cyber_source:
    put:
      tags:
        - Gateways
      summary: Update CyberSource Gateway
      description: Use this endpoint to configure CyberSource.
      operationId: updateCyberSourceGateway
      parameters: [ ]
      requestBody:
        description: ''
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Request.UpdateCyberSourceGateway'
            examples:
              default:
                value:
                  data:
                    enabled: true
                    login: 'xxx'
                    password: 'xxx'
                    test: true
        required: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                allOf:
                  - $ref: '#/components/schemas/Response.Data'
                  - properties:
                      data:
                        type: object
                        allOf:
                          - $ref: '#/components/schemas/Response.Gateway'
                          - properties:
                              login:
                                description: Represents your live or test CyberSource merchant ID.
                                type: string
                                example: 'cybersource-merchant-id'
                              password:
                                description: Indicates your live or test CyberSource SOAP key.
                                type: string
                                example: 'cybersource SOAP key'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Response.Error'
              example:
                errors:
                  status: 401
                  title: Unauthorized
      deprecated: false
components:
  schemas:
    Request.UpdateManualGateway:
      title: Update Manual Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.UpdateManualGateway'
    Data.UpdateManualGateway:
      title: Update Manual Gateway Data
      type: object
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples: true
    Request.UpdateBraintreeGateway:
      title: Update Braintree Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.UpdateBraintreeGateway'
    Data.UpdateBraintreeGateway:
      title: Update Braintree Gateway Data
      type: object
      required:
        - merchant_id
        - private_key
        - public_key
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - true
        environment:
          description: Specifies production or sandbox environment.
          type: string
          examples:
            - sandbox
        merchant_id:
          description: Specifies Your Braintree merchant ID.
          type: string
          examples:
            - '{{braintreeMerchantId}}'
        private_key:
          description: Represents Your Braintree private key.
          type: string
          examples:
            - '{{braintreePrivateKey}}'
        public_key:
          description: Indicates Your Braintree public key.
          type: string
          examples:
            - '{{braintreePublicKey}}'
    Request.UpdateStripeGateway:
      title: Update Stripe Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.UpdateStripeGateway'
    Data.UpdateStripeGateway:
      title: Update Stripe Gateway Data
      type: object
      required:
        - login
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - true
        login:
          description: Represents Stripe `test` or `live` secret key.
          type: string
          examples:
            - '{{stripeToken}}'
    Request.UpdateElasticPathPaymentsStripeGateway:
      title: Update Elastic Path Payments by Stripe Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.ElasticPathPaymentsStripeGateway'
    Data.ElasticPathPaymentsStripeGateway:
      title: Update Elastic Path Payments by Stripe Gateway Data
      type: object
      required:
        - stripe_account
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - true
        stripe_account:
          description: Specifies the Stripe account ID.
          type: string
          examples:
            - '{{stripeAccountId}}'
        test:
          description: Specifies whether the test mode is enabled. Set `true` to enable test mode and `false` to disable the test mode. Default is `false`.
          type: boolean
          examples:
            - true
    Request.UpdatePaypalExpressCheckoutGateway:
      title: Update Paypal Express Checkout Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.UpdatePaypalExpressCheckoutGateway'
    Data.UpdatePaypalExpressCheckoutGateway:
      title: Update Paypal Express Checkout Gateway Data
      type: object
      required:
        - payer_id
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - true
        payer_id:
          description: Specifies the merchant account ID. The ID is displayed in the PayPal account details of the merchant.
          type: string
          examples:
            - '{{merchant account id}}'
        test:
          description: Specifies whether the test mode is enabled. Set `true` to enable test mode and `false` to disable the test mode. Default is `false`.
          type: boolean
          examples:
            - true
    UpdateAdyenGatewayRequest:
      title: Update Adyen Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.UpdateAdyenGateway'
    Data.UpdateAdyenGateway:
      title: Update Adyen Gateway Data
      type: object
      required:
        - merchant_account
        - username
        - password
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - true
        merchant_account:
          description: Represents your Adyen merchant account code. For example, MyCompanyECOM.
          type: string
        username:
          description: Indicates your web service username. For example, ws@Company.MyCompany.
          type: string
        password:
          description: Specifies your web service user Basic Auth password.
          type: string
        test:
          description: Specifies whether the test account is enabled or disabled. Set `true` to enable the test account and `false` to disable the test account. Default is `false`.
          type: boolean
          examples:
            - false
    Request.UpdateAuthorizeNetGateway:
      title: Update Authorize Net Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/UpdateAuthorizeNetGatewayData'
    UpdateAuthorizeNetGatewayData:
      title: Update Authorize Net Gateway Data
      type: object
      required:
        - login
        - password
      properties:
        login:
          description: Represents Authorize.net API Login ID.
          type: string
        password:
          description: Indicates Authorize.net Transaction Key.
          type: string
        slug:
          description: Specifies a unique slug for this gateway.
          type: string
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - true
        test:
          description: Specifies whether the test account is enabled or disabled. Set `true` to enable the test account and `false` to disable the test account. Default is `false`.
          type: boolean
          examples:
            - true
    Request.UpdateCardConnectGateway:
      title: Update CardConnect Gateway Request
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.UpdateCardConnectGateway'
    Data.UpdateCardConnectGateway:
      title: Update CardConnect Gateway Data
      type: object
      required:
        - merchant_id
        - username
        - password
      properties:
        merchant_id:
          description: Specifies your CardConnect Merchant ID.
          type: string
        username:
          description: Represents your CardConnect username.
          type: string
        password:
          description: Indicates your CardConnect password.
          type: string
        test:
          description: Specifies whether the test account is enabled or disabled. Set `true` to enable the test account and `false` to disable the test account. Default is `false`.
          type: boolean
          examples:
            - false
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - false
    Request.UpdateCyberSourceGateway:
      title: 'Update CyberSource Gateway Request'
      type: object
      properties:
        data:
          $ref: '#/components/schemas/Data.UpdateCyberSourceGateway'
    Data.UpdateCyberSourceGateway:
      title: Update CyberSource Gateway Data
      type: object
      required:
        - login
        - password
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          type: boolean
          examples:
            - true
        test:
          description: Specifies whether the test account is enabled or disabled. Set `true` to enable the test account and `false` to disable the test account. Default is `false`.
          type: boolean
          examples:
            - true
        login:
          description: Represents your live or test CyberSource merchant ID.
          type: string
        password:
          description: Indicates your live or test CyberSource SOAP key.
          type: string
    Response.Gateway:
      type: object
      properties:
        enabled:
          description: Specifies whether the gateway is enabled or disabled. Set `true` to enable the gateway and `false` to disable the gateway. Default is `false`.
          example: true
          type: boolean
        login:
          description: Represents your login ID.
          type: string
        name:
          description: Represents the name of the gateway.
          example: '{gatewayName}'
          type: string
        type:
          description: Specifies the type of object being returned.
          example: gateway
          type: string
        password:
          description: Specifies your password.
          type: string
        signature:
          type: string
        slug:
          description: Specifies the slug of the gateway.
          example: '{gatewaySlug}'
          type: string
        test:
          description: Specifies whether the test mode is enabled. Set `true` to enable test mode and `false` to disable the test mode. Default is `false`.
          example: false
          type: boolean
    Response.Data:
      type: object
      properties:
        data: { }
    Response.Error:
      type: array
      properties:
        detail:
          type: string
        status:
          type: string
        title:
          type: string
security: [ ]
tags:
  - name: Gateways