BigCommerce Payment Actions API

The Payment Actions API from BigCommerce — 7 operation(s) for payment actions.

Documentation

📖
Documentation
https://developer.bigcommerce.com/
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/abandoned-carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/brands
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/categories
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/category-trees
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-modifiers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-variant-options
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/product-variants
📖
APIReference
https://developer.bigcommerce.com/docs/rest-catalog/products
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/channels
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/checkouts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/store-content
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/currencies
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/customers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/email-templates
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/geography
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/orders
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/pages
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/tokens
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/methods-deprecated
📖
APIReference
https://developer.bigcommerce.com/docs/rest-payments/processing
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/settings
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/shipping-v2
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/channels/site
📖
APIReference
https://developer.bigcommerce.com/docs/rest-management/store-information
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/carts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/checkouts
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/customers
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/orders
📖
APIReference
https://developer.bigcommerce.com/docs/rest-storefront/subscriptions
📖
APIReference
https://developer.bigcommerce.com/docs/integrations/webhooks
📖
APIReference
https://developer.bigcommerce.com/docs/rest-content/widgets

Specifications

Other Resources

OpenAPI Specification

bigcommerce-payment-actions-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: BigCommerce Abandoned Cart Emails Payment Actions API
  version: 3.0.0
  termsOfService: https://www.bigcommerce.com/terms
  description: Abandoned Cart Emails V3 API managing Handlebars-based emails.
  contact:
    name: BigCommerce
    url: https://www.bigcommerce.com
    email: support@bigcommerce.com
servers:
- url: https://api.bigcommerce.com/stores/{store_hash}/v3
  variables:
    store_hash:
      default: store_hash
      description: Permanent ID of the BigCommerce store.
  description: BigCommerce API Gateway
security:
- X-Auth-Token: []
tags:
- name: Payment Actions
paths:
  /orders/{order_id}/payment_actions/capture:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - $ref: '#/components/parameters/OrderIdParam'
    post:
      summary: BigCommerce Capture order payment
      description: 'Capture the payment for an order. When there are no payment method validation issues, the capture process is successful, the `payment_status` updates to `capture pending`, and the payment request is scheduled. The payment request itself occurs asynchronously.

        Requires at least one of the following scopes:

        * `store_v2_orders`

        * `store_v2_transactions`'
      operationId: captureOrderPayment
      parameters:
      - $ref: '#/components/parameters/ContentType'
      responses:
        '201':
          $ref: '#/components/responses/201_Created'
        '400':
          $ref: '#/components/responses/400_BadRequest'
        '404':
          $ref: '#/components/responses/404_NotFound'
        '422':
          $ref: '#/components/responses/422_UnprocessableEntity'
        '502':
          $ref: '#/components/responses/502_GatewayError'
        '503':
          $ref: '#/components/responses/503_ServiceUnavailable'
        '504':
          $ref: '#/components/responses/504_GatewayTimeout'
      tags:
      - Payment Actions
  /orders/{order_id}/payment_actions/void:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - $ref: '#/components/parameters/OrderIdParam'
    post:
      summary: BigCommerce Void
      description: 'Void the payment for an order. When there are no payment method validation issues, the void process is successful, the `payment_status` updates to `void pending`, and the void payment request is scheduled. The payment request itself occurs asynchronously.


        Requires at least one of the following scopes:

        * `store_v2_orders`

        * `store_v2_transactions`'
      operationId: voidOrderPayment
      parameters:
      - $ref: '#/components/parameters/ContentType'
      responses:
        '201':
          $ref: '#/components/responses/201_Created'
        '400':
          $ref: '#/components/responses/400_BadRequest'
        '404':
          $ref: '#/components/responses/404_NotFound'
        '422':
          $ref: '#/components/responses/422_UnprocessableEntity'
        '502':
          $ref: '#/components/responses/502_GatewayError'
        '503':
          $ref: '#/components/responses/503_ServiceUnavailable'
        '504':
          $ref: '#/components/responses/504_GatewayTimeout'
      tags:
      - Payment Actions
  /orders/{order_id}/payment_actions/refund_quotes:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - $ref: '#/components/parameters/OrderIdParam'
    post:
      summary: BigCommerce Create a Refund Quote
      description: 'Calculate the tax amount, total refund amount and get available payment options for an order refund by providing items and costs or quantities to refund.


        Requires at least one of the following scopes:

        * `store_v2_orders`

        * `store_v2_transactions`


        **Note:**

        Order refunds are processed consecutively. Processing synchronous refunds on an order are not yet supported.'
      operationId: createOrderRefundQuotes
      parameters:
      - $ref: '#/components/parameters/ContentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundQuote_Post'
          application/xml:
            schema:
              type: object
              properties: {}
          multipart/form-data:
            schema:
              type: object
              properties: {}
        required: true
        x-examples:
          Quantity:
            items:
            - item_id: 75
              item_type: PRODUCT
              quantity: 1
          Amount:
            items:
            - item_id: 79
              item_type: SHIPPING
              amount: 10
          Tax Exempt (Order Level):
            items:
            - item_type: ORDER
              item_id: 1234
              amount: 1
              reason: Overcharged $1.00
          Multiple Items:
            items:
            - item_id: 75
              item_type: PRODUCT
              quantity: 1
            - item_id: 79
              item_type: SHIPPING
              amount: 10
        description: ''
      responses:
        '201':
          $ref: '#/components/responses/RefundQuote_Resp'
        '422':
          $ref: '#/components/responses/422_UnprocessableEntity'
      tags:
      - Payment Actions
  /orders/{order_id}/payment_actions/refunds:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - $ref: '#/components/parameters/OrderIdParam'
    post:
      summary: BigCommerce Create a Refund
      description: 'Creates a refund. When there are no payment method validation issues, the refund process is successful and the refund payment request is scheduled. The payment request itself occurs asynchronously.


        Requires at least one of the following scopes:

        * `store_v2_orders`

        * `store_v2_transactions`


        **Note:**

        Order refunds are processed consecutively. Processing synchronous refunds on an order are not yet supported.'
      operationId: createOrderRefund
      parameters:
      - $ref: '#/components/parameters/ContentType'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest_Post'
        required: true
        x-examples:
          Quantity:
            items:
            - item_type: PRODUCT
              item_id: 31
              amount: 35
              quantity: 1
              reason: Not the right product.
            payments:
            - provider_id: storecredit
              amount: 37.89
              offline: false
            merchant_calculated_override:
            - total_amount: 45
              total_tax: null
          Tax Exempt (Order Level):
            order_id: 1234
            items:
            - item_type: ORDER
              item_id: 1234
              amount: 1
              reason: overcharged
            payments:
            - provider_id: authorizenet
              provider_description: Authorize.net
              amount: 1
              offline: false
          Multiple Items:
            items:
            - item_id: 75
              item_type: PRODUCT
              quantity: 1
            - item_id: 79
              item_type: SHIPPING
              amount: 10
            tax_adjustment_amount: 0
            payments:
            - provider_id: storecredit
              amount: 232.75
              offline: false
          Merchant Calculated Override:
            order_id: 1234
            items:
            - item_type: ORDER
              item_id: 1234
              amount: 10
              reason: overcharged
            merchant_calculated_override:
              total_amount: 10
              tax_amount: 0
            payments:
            - provider_id: authorizenet
              provider_description: Authorize.net
              amount: 10
              offline: false
      responses:
        '201':
          $ref: '#/components/responses/Refund_Resp'
        '422':
          description: "Unable to process a guest refund with store credit. \n"
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/ErrorResponse'
              examples:
                response:
                  value:
                    data:
                    - status: 422
                      title: Unable to provide store credit for a guest customer.
                      type: https://developer.bigcommerce.com/api-docs/getting-started/api-status-codes
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FailedQuoteError'
                  meta:
                    $ref: '#/components/schemas/Meta'
              examples:
                response:
                  value:
                    data:
                    - order_id: 1
                      status: 503
                      error: Tax service gone away
                    meta: {}
      tags:
      - Payment Actions
    get:
      summary: BigCommerce Get Refunds for Order
      description: 'Returns a list of refunds ordered by refund ID in ascending order for the given order.


        Requires at least one of the following scopes:

        * `store_v2_transactions_read_only`

        * `store_v2_transactions`

        * `store_v2_orders_read_only`

        * `store_v2_orders`'
      operationId: getOrderRefunds
      responses:
        '200':
          $ref: '#/components/responses/RefundCollection_Resp'
      tags:
      - Payment Actions
  /orders/payment_actions/refunds/{refund_id}:
    parameters:
    - $ref: '#/components/parameters/Accept'
    - name: refund_id
      in: path
      description: Refund ID.
      required: true
      schema:
        type: integer
    get:
      summary: BigCommerce Get a Refund
      description: Returns a refund by refund ID.
      operationId: getOrderRefund
      responses:
        '200':
          $ref: '#/components/responses/RefundID_Response'
      tags:
      - Payment Actions
  /orders/payment_actions/refunds:
    parameters:
    - $ref: '#/components/parameters/Accept'
    get:
      summary: BigCommerce Get All Refunds
      description: 'Returns a list of refunds ordered by refund ID in ascending order.


        Requires at least one of the following scopes:

        * `store_v2_transactions_read_only`

        * `store_v2_transactions`

        * `store_v2_orders_read_only`

        * `store_v2_orders`'
      operationId: getOrdersRefunds
      tags:
      - Payment Actions
      parameters:
      - name: order_id:in
        in: query
        description: Filter by `order_id`. Accepts multiple as comma-separated values.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - name: id:in
        in: query
        description: Filter by refund `id`. Accepts multiple as comma-separated values.
        style: form
        explode: false
        schema:
          type: array
          items:
            type: integer
      - in: query
        name: created:min
        description: 'Filter results so they are later than or equal to provided date.



          Must be in url-encoded RFC 3339 format.

          e.g. `2020-01-15T01:02:34-01:00` is RFC 3339 format.

          Url-encoded this will be `2020-01-15T01%3A02%3A34%2B01%3A00`'
        schema:
          type: string
          format: date-time
      - in: query
        name: created:max
        description: 'Filter results so they are earlier than or equal to provided date.


          Must be in url-encoded RFC 3339 format.

          e.g. `2020-01-15T01:02:34-01:00` is RFC 3339 format.

          Url-encoded this will be `2020-01-15T01%3A02%3A34%2B01%3A00`'
        schema:
          type: string
          format: date-time
      - in: query
        name: page
        description: Specifies the page number in a limited (paginated) list of items.
        schema:
          type: integer
      - in: query
        name: limit
        description: Controls the number of items per page in a limited (paginated) list of items.
        schema:
          type: integer
      responses:
        '200':
          $ref: '#/components/responses/RefundCollection_Resp'
  /orders/payment_actions/refund_quotes:
    post:
      summary: BigCommerce Create Refund Quotes - BATCH
      description: 'Calculate the tax amount, total refund amount and get available payment options for an order refund by providing items and costs or quantities to refund.


        This endpoint will accept a batch of one or more.


        Requires at least one of the following scopes:

        * `store_v2_orders`

        * `store_v2_transactions`'
      operationId: createOrdersRefundQuotes
      parameters:
      - $ref: '#/components/parameters/Accept'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRefundQuotesRequest'
        required: true
        x-examples:
          application/json:
          - items:
            - item_id: 76
              item_type: PRODUCT
              quantity: 1
            tax_adjustment_amount: 0
      responses:
        '201':
          $ref: '#/components/responses/RefundQuotesBATCH_Resp'
        '422':
          description: Partial success/failure response. Status to roll up to the most severe individual failure to the whole request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/RefundQuote_Full'
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/FailedQuoteError'
                  meta:
                    $ref: '#/components/schemas/Meta'
            Example 1:
              examples:
                response:
                  value:
                    data:
                    - order_id: 1
                      total_refund_amount: 1.99
                      total_refund_tax_amount: 1.95
                      rounding: 1
                      adjustment: 0.05
                      tax_inclusive: true
                      refund_methods:
                      - ''
                    errors:
                    - order_id: 1
                      status: 422
                      error: Refund amount is greater than remaining amount
                    meta:
                      failure: 1
                      success: 1
                      total: 2
        '503':
          description: Every request in the batch failed. The error object describes the failure for each component request.
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/RefundQuote_Full'
                  errors:
                    type: array
                    items:
                      $ref: '#/components/schemas/FailedQuoteError'
                  meta:
                    $ref: '#/components/schemas/Meta'
              examples:
                response:
                  value:
                    data: []
                    errors:
                    - order_id: 1
                      status: 503
                      error: Tax service could not be contacted
                    - order_id: 100
                      status: 422
                      error: Refund amount exceeds remaining amount
                    meta:
                      failure: 2
                      success: 0
                      total: 2
      tags:
      - Payment Actions
      x-private: true
components:
  schemas:
    PaymentRequest:
      type: object
      properties:
        provider_id:
          type: string
          description: Reference to payment provider.
          example: checkout_paypalexpress
        amount:
          type: number
          description: Amount refunded with this provider.
          example: 9.99
        offline:
          type: boolean
          description: Whether the payment was marked as offline or performed through an online payment service.
          example: true
      title: Payment Request
      x-internal: false
    errorDetailed_Full:
      type: object
      properties:
        errors:
          type: object
          properties: {}
          additionalProperties: true
          title: DetailedErrors
      title: errorDetailed_Full
      x-internal: false
    metaEmpty_Full:
      type: object
      title: Response meta
      properties: {}
      additionalProperties: true
      description: Response metadata.
    PostRefundQuotesRequest:
      type: array
      description: Request body for batch refund quotes.
      title: Refund Quotes Request - BATCH
      items:
        $ref: '#/components/schemas/RefundQuote_Post'
      x-internal: false
    Meta:
      type: object
      title: Meta
      properties:
        meta:
          type: object
          description: Data about the response, including pagination and collection totals.
          title: Pagination
          properties:
            total:
              type: integer
              description: 'Total number of items in the result set.

                '
              example: 36
            count:
              type: integer
              description: 'Total number of items in the collection response.

                '
              example: 36
            per_page:
              type: integer
              description: 'The amount of items returned in the collection per page, controlled by the limit parameter.

                '
              example: 50
            current_page:
              type: integer
              description: 'The page you are currently on within the collection.

                '
              example: 1
            total_pages:
              type: integer
              description: 'The total number of pages in the collection.

                '
              example: 1
            links:
              type: object
              description: 'Pagination links for the previous and next parts of the whole collection.

                '
              properties:
                previous:
                  type: string
                  description: 'Link to the previous page returned in the response.

                    '
                current:
                  type: string
                  description: 'Link to the current page returned in the response.

                    '
                  example: ?page=1&limit=50
                next:
                  type: string
                  description: 'Link to the next page returned in the response.

                    '
      x-internal: false
    RefundQuote_Full:
      type: object
      title: RefundQuote_Full
      x-internal: false
      properties:
        order_id:
          type: integer
          description: ID of the order to be refunded.
        total_refund_amount:
          $ref: '#/components/schemas/Amount'
        total_refund_tax_amount:
          type: number
          example: 1.95
        rounding:
          type: number
          description: Indicates rounding value to bring `refund_total` to an amount refundable with payment providers (in this case to 2 decimal places).
        adjustment:
          $ref: '#/components/schemas/AdjustmentAmount'
        tax_inclusive:
          type: boolean
          description: Indicate if `total_refund_amount` includes tax amount.
        refund_methods:
          type: array
          description: "An array of available refund methods.\n\nNote that `refund_methods` is an array of refund methods, with each refund method being an array of payment options.\n\nFor example, if the order was placed by a combination of store credit and bank deposit the refund methods would be:\n\n```json\n{\n  \"refund_methods\": [\n    [\n      {\n        \"provider_id\": \"storecredit\",\n        \"provider_description\": \"Store Credit\",\n        \"amount\": 119.35,\n        \"offline\": false,\n        \"offline_provider\": false,\n        \"offline_reason\": \"\"\n      }\n    ],\n    [\n      {\n        \"provider_id\": \"custom\",\n        \"provider_description\": \"Custom\",\n        \"amount\": 119.35,\n        \"offline\": true,\n        \"offline_provider\": true,\n        \"offline_reason\": \"This is an offline payment provider.\"\n      }\n    ],\n    [\n      {\n        \"provider_id\": \"bankdeposit\",\n        \"provider_description\": \"Bank Deposit\",\n        \"amount\": 80.35,\n        \"offline\": true,\n        \"offline_provider\": true,\n        \"offline_reason\": \"This is an offline payment provider.\"\n      },\n      {\n        \"provider_id\": \"storecredit\",\n        \"provider_description\": \"Store Credit\",\n        \"amount\": 39,\n        \"offline\": false,\n        \"offline_provider\": false,\n        \"offline_reason\": \"\"\n      }\n    ]\n  ]\n}\n```\n\nIn this case there are three refund methods available to the merchant:\n1. Refund up to the entire order amount to store credit.\n2. Mark an amount up to the full order amount as refunded externally, through a provider or means not represented directly in BC (\"custom\").\n3. Refund the amount paid by store credit to store credit, and the amount paid by bank deposit with a manual refund, which will be recorded as being refunded against the bank deposit.\n"
          items:
            $ref: '#/components/schemas/RefundMethod'
    RefundID_Get:
      type: object
      x-examples:
        Example:
          data:
            id: 12
            order_id: 180
            user_id: 0
            created: '2022-06-16T16:44:15+00:00'
            reason: Customer requires a refund.
            total_amount: 50
            total_tax: 5
            uses_merchant_override_values: false
            payments:
            - id: 13
              provider_id: storecredit
              amount: 50
              offline: true
              is_declined: false
              declined_message: ''
            items:
            - item_type: PRODUCT
              item_id: 87
              quantity: 1
              requested_amount: null
          meta: {}
      properties:
        data:
          type: object
          properties:
            id:
              type: integer
              description: 'Refund ID for the returned refund.

                '
            order_id:
              type: integer
              description: Order ID associated with the refund.
            user_id:
              type: integer
              description: 'Reference to the user ID who created the refund. This is automatically populated by BigCommerce.

                '
            created:
              type: string
              description: 'Timestamp of when the refund was created.

                '
              format: date-time
            reason:
              type: string
              description: 'Reason for refund.

                '
            total_amount:
              type: number
              description: 'A non-negative 2 decimal place rounded value that represents the amount that can be refunded with the correct payment provider(s).

                '
              example: 109.11
            total_tax:
              type: number
              description: 'Total tax amount refunded back to the shopper. This can be a negative amount indicating we have collected tax by refunding less to the customer.

                '
            uses_merchant_override_values:
              type: boolean
              description: 'Whether refund amount and tax are provided explicitly by merchant override.

                '
            payments:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: integer
                    description: 'Reference to refund payment ID.

                      '
                  provider_id:
                    type: string
                    description: 'Reference to payment provider.

                      example: storecredit

                      '
                  amount:
                    type: number
                    description: 'A non-negative two decimal place rounded value represents the amount that can be charged/refunded with payment providers.

                      '
                    example: 109.11
                  offline:
                    type: boolean
                    description: 'Indicates whether the payment was offline.

                      '
                  is_declined:
                    type: boolean
                    description: 'Indicates if this payment has been declined by the payment provider.

                      '
                  declined_message:
                    type: string
                    description: 'Message indicates why the payment was declined.

                      '
            items:
              type: array
              items:
                type: object
                properties:
                  item_type:
                    type: string
                    description: 'Type of item that was refunded.

                      '
                    enum:
                    - PRODUCT
                    - GIFT_WRAPPING
                    - SHIPPING
                    - HANDLING
                    - ORDER
                  item_id:
                    type: integer
                    description: '`order_product.id` corresponding to the item_types of PRODUCT, GIFT_WRAPPING. `order_address.id` corresponding to the item_types of SHIPPING, HANDLING. `order.id` corresponding to the item_type of ORDER.

                      '
                  quantity:
                    type: integer
                    description: 'Quantity of item refunded. Note: this will only be populated for item_type PRODUCT.

                      '
                  requested_amount:
                    type: string
                    description: 'A non-negative two decimal place rounded value that represents the amount that can be refunded with the payment provider(s).

                      '
                    example: '109.11'
                    nullable: true
                  reason:
                    type: string
                    description: 'Reason for refunding an item.

                      '
        meta:
          $ref: '#/components/schemas/metaEmpty_Full'
    ItemsRefund:
      title: ItemsRefund
      x-internal: false
      oneOf:
      - $ref: '#/components/schemas/AmountBoundItem'
      - $ref: '#/components/schemas/QuantityBoundItem'
      - $ref: '#/components/schemas/TaxExemptItem'
      x-examples: {}
    ErrorResponse:
      allOf:
      - $ref: '#/components/schemas/error_Base'
      - type: object
        properties:
          errors:
            type: object
            properties: {}
            additionalProperties: true
            title: DetailedErrors
      title: ErrorResponse
      x-internal: false
    AdjustmentAmount:
      type: number
      format: float
      description: A negative or positive 2 decimal place rounded value that represents the difference between the refund amount requested in the refund quote and the actual amount that is refundable on the order. This value is negative when the refund amount requested in the refund quote is more than the total refundable amount. This value is positive when the total refundable amount has increased, e.g. as a result of rounding.
      example: -10.2
      title: Adjustment Amount
      x-internal: false
    QuantityBoundItem:
      type: object
      title: Quantity Bound Item
      description: 'Quantity Bound Item


        Type of refund item that capture refunding of items in the order that are of type quantity.

        * `ORDER`

        * `PRODUCT`

        * `GIFT_WRAPPING`

        * `SHIPPING`

        * `HANDLING`

        * `TAX`

        '
      properties:
        item_type:
          type: string
          example: PRODUCT
          enum:
          - ORDER
          - PRODUCT
          - GIFT_WRAPPING
          - SHIPPING
          - HANDLING
          - TAX
          description: Type of refund.
        item_id:
          type: integer
          example: 1
          description: Order Product ID.
        quantity:
          type: integer
          example: 3
        reason:
          type: string
          example: Wrong size.
          description: Reason for refund.
          minLength: 0
          maxLength: 1000
      x-internal: false
    Amount:
      type: number
      format: float
      description: A non-negative 2 decimal place rounded value that represents the amount that can be charged/refunded with payment providers.
      example: 1.99
      title: Amount
      x-internal: false
    RefundItem:
      type: object
      properties:
        item_type:
          type: string
          description: Type of item that was refunded.
          enum:
          - PRODUCT
          - GIFT_WRAPPING
          - SHIPPING
          - HANDLING
          - ORDER
        item_id:
          type: integer
          description: order_product.id corresponding to the item_types of PRODUCT, GIFT_WRAPPING. order_address.id corresponding to the item_types of SHIPPING, HANDLING. order.id corresponding to the item_type of ORDER.
        reason:
          type: string
          description: Reason for refunding an item.
        quantity:
          type: integer
          description: 'Quantity of item refunded. Note: this will only be populated for item_type PRODUCT'
        requested_amount:
          $ref: '#/components/schemas/Amount'
      title: Refund Item
      x-internal: false
    RefundQuote_Post:
      type: object
      title: RefundQuote_Post
      description: Request body for refund quotes.
      x-internal: false
      x-examples: {}
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ItemsRefund'
      required:
      - items
    AmountBoundItem:
      type: object
      title: Amount Bound Item
      description: 'Amount Bound Item


        Type of refund item that capture refunding of items in the order that are of type amount.

        * `PRODUCT`

        * `ORDER`

        * `GIFT_WRAPPING`

        * `SHIPPING`

        * `HANDLING`

        * `TAX`'
      x-internal: false
      properties:
        item_type:
          type: string
          enum:
          - PRODUCT
          - ORDER
          - GIFT_WRAPPING
          - SHIPPING
          - HANDLING
          - TAX
          example: SHIPPING
          description: Type of refund.
        item_id:
          type: integer
          example: 1
          description: Order address ID.
        amount:
          $ref: '#/components/schemas/Amount'
        quantity:
          type: integer
          example: 3
          description: Number of items in refund.
        reason:
          type: string
          description: Explanation of refund.
          minLength: 0
          maxLength: 1000
          example: Customer requested refund
    PaymentOption:
      type: object
      example:
        provider_id: checkout_paypalexpress
        provider_description: Paypal Express
        amount: 9.99
        offline: true
        offline_provider: true
        offline_reason: Multiple online refunds are not available.
      title: Payment Option
      properties:
        provider_id:
          type: string
          description: Name of the payment method.
          example: checkout_paypalexpress
        provider_description:
          type: string
          description: Description for payment provider.
          example: Paypal Express
        amount:
          type: number
          description: Amount to be refunded with this payment provider.
          example: 9.99
        offline:
          type: boolean
          description: Indicates the payment must be done offline due to constraints of the payment provider, such as partial refunds not being supported, or it being offline only

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bigcommerce/refs/heads/main/openapi/bigcommerce-payment-actions-api-openapi.yml