> ## Documentation Index
> Fetch the complete documentation index at: https://www.twicecommerce.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Refund a transaction

> Refunds a specific transaction (full or partial). Supports multiple refunds until the transaction is fully refunded.



## OpenAPI

````yaml https://server.twicecommerce.com/api/admin/openapi-mintlify.json post /v1/admin/transactions/{transactionId}/refund
openapi: 3.0.2
info:
  title: TWICE Admin API
  description: "The TWICE Admin API is the merchant-facing API of the Twice platform. It is currently in alpha: endpoints and schemas may change without notice.\n\n## Webhooks\n\nWebhooks notify your systems when resources change in Twice. A webhook subscription pairs one event type with one HTTPS endpoint of yours; whenever a matching event occurs, we POST the event to that endpoint. Subscriptions and their delivery logs are managed in the Twice admin under **Account → Integrations**.\n\n### Event types\n\n- `order.created`\n- `order.deleted`\n- `order.updated`\n\n### Payload\n\nEvery delivery is an HTTP POST with a JSON body sharing a common envelope. The typed payload of each event type is documented in the **Webhooks** section of the sidebar.\n\n```json\n{\n\t\"eventId\": \"5f2eb3a6-6cbd-4a2e-9350-6e0d1e2f9a11\",\n\t\"eventType\": \"order.created\",\n\t\"eventTime\": \"2026-08-06T12:34:56.789Z\",\n\t\"resource\": \"order\",\n\t\"resourceId\": \"0d9e0a7c-3fd1-4c8f-9c0d-2b7c6f7f2a55\",\n\t\"apiVersion\": \"2025-06\",\n\t\"data\": { \"…\": \"the API representation of the resource, or null for deletes\" }\n}\n```\n\n`data` carries the resource in the same shape the REST API returns it, as of the API version in `apiVersion`. Each subscription is pinned to the API version that was the latest when the subscription was created, so a new API version never changes the payload shape you receive — moving to a newer version is an explicit update of the subscription.\n\n### Acknowledging deliveries\n\nRespond with any **2xx** status to acknowledge a delivery. Any other status — or a timeout — counts as a failed attempt. Respond as quickly as possible and do heavy processing asynchronously after acknowledging.\n\n### Delivery semantics\n\nDeliveries are **at-least-once**: the same event can occasionally be delivered more than once, so deduplicate on the `X-Twice-Event-Id` header (or the equal `eventId` body field). Ordering is not guaranteed — when it matters, use `eventTime` or re-fetch the current state of the resource via the API.\n\n### Retries\n\nFailed deliveries are retried up to 3 times (4 attempts in total) with growing backoff — roughly 10 s, 20 s, 40 s after the preceding attempt — giving up 10 minutes after the first attempt. After 3 consecutive events fail all their attempts, the subscription is automatically disabled (`disabledReason: TOO_MANY_FAILED_DELIVERY_ATTEMPTS`) and must be re-enabled manually in the admin. Individual deliveries can also be redelivered manually from the delivery log.\n\n### Verifying signatures\n\nEach subscription has a signing secret (prefixed `whsec_`), available in the admin. Deliveries carry an HMAC-SHA256 signature of the exact raw request body in the `X-Twice-Signature` header, formatted `sha256=<hex>`. Verify it against the raw body bytes — parse the JSON only after the signature checks out:\n\n```js\nimport { createHmac, timingSafeEqual } from 'node:crypto';\n\nconst expected = 'sha256=' + createHmac('sha256', secret).update(rawBody, 'utf8').digest('hex');\nconst signature = req.headers['x-twice-signature'];\nconst isValid =\n\ttypeof signature === 'string' &&\n\tsignature.length === expected.length &&\n\ttimingSafeEqual(Buffer.from(signature), Buffer.from(expected));\n```"
  version: 2025-06
servers:
  - url: https://server.twicecommerce.com
security:
  - ApiKeyAuth: []
paths:
  /v1/admin/transactions/{transactionId}/refund:
    post:
      tags:
        - payments
      summary: Refund a transaction
      description: >-
        Refunds a specific transaction (full or partial). Supports multiple
        refunds until the transaction is fully refunded.
      operationId: admin.payments.refundTransaction
      parameters:
        - name: transactionId
          in: path
          required: true
          schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
      requestBody:
        description: Body
        content:
          application/json:
            schema:
              type: object
              properties:
                amount:
                  type: integer
                  exclusiveMinimum: true
                  maximum: 9007199254740991
                paymentLines:
                  type: object
                  properties:
                    paymentLineId:
                      type: string
                    amount:
                      nullable: true
                      type: integer
                      exclusiveMinimum: true
                      maximum: 9007199254740991
                  required:
                    - paymentLineId
                    - amount
                idempotencyKey:
                  type: string
                  format: uuid
                  pattern: >-
                    ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
              required:
                - amount
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                properties:
                  refundPayment:
                    type: object
                    properties:
                      id:
                        type: string
                      orderId:
                        type: string
                      type:
                        type: string
                        enum:
                          - sale
                          - deposit_auth
                          - deposit_capture
                          - refund
                          - refund_reverse
                          - cancel
                          - expire
                      status:
                        type: string
                        enum:
                          - pending
                          - succeeded
                          - failed
                          - voided
                      originalPaymentId:
                        type: string
                      pricing:
                        type: object
                        properties:
                          currency:
                            type: string
                          total:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          subtotal:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          additionalInfo:
                            type: string
                          totalTaxes:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          totalDiscounts:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          taxExcluded:
                            type: boolean
                          taxLines:
                            type: array
                            items:
                              type: object
                              properties:
                                combinedLabel:
                                  allOf:
                                    - type: object
                                      additionalProperties:
                                        type: string
                                    - type: object
                                      properties:
                                        def:
                                          type: string
                                      required:
                                        - def
                                      additionalProperties: false
                                label:
                                  allOf:
                                    - type: object
                                      additionalProperties:
                                        type: string
                                    - type: object
                                      properties:
                                        def:
                                          type: string
                                      required:
                                        - def
                                      additionalProperties: false
                                price:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                rate:
                                  type: number
                                taxableAmount:
                                  anyOf:
                                    - nullable: true
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    - {}
                              required:
                                - price
                                - rate
                              additionalProperties: false
                          discountCodes:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                quantity:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                totalDiscountValue:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                discountCodeId:
                                  type: string
                              required:
                                - quantity
                                - totalDiscountValue
                              additionalProperties: false
                          manualDiscount:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          deposit:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          listPrice:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          originalListPrice:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                        required:
                          - currency
                          - total
                          - subtotal
                          - totalTaxes
                          - totalDiscounts
                          - taxExcluded
                          - taxLines
                          - listPrice
                          - originalListPrice
                        additionalProperties: false
                      receiptNumber:
                        nullable: true
                        type: number
                      issuedAt:
                        type: string
                      meta: {}
                      lines:
                        type: object
                        properties:
                          id:
                            type: string
                          paymentId:
                            type: string
                          type:
                            type: string
                            enum:
                              - line_item
                              - shipping
                              - deposit
                              - fee
                              - rounding
                          orderLineItemId:
                            type: string
                          invoiceId:
                            type: string
                          invoiceLineId:
                            type: string
                          name:
                            type: string
                          quantity:
                            type: number
                          pricing:
                            type: object
                            properties:
                              currency:
                                type: string
                              total:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              subtotal:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              additionalInfo:
                                type: string
                              totalTaxes:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              totalDiscounts:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              taxExcluded:
                                type: boolean
                              taxLines:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    combinedLabel:
                                      allOf:
                                        - type: object
                                          additionalProperties:
                                            type: string
                                        - type: object
                                          properties:
                                            def:
                                              type: string
                                          required:
                                            - def
                                          additionalProperties: false
                                    label:
                                      allOf:
                                        - type: object
                                          additionalProperties:
                                            type: string
                                        - type: object
                                          properties:
                                            def:
                                              type: string
                                          required:
                                            - def
                                          additionalProperties: false
                                    price:
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    rate:
                                      type: number
                                    taxableAmount:
                                      anyOf:
                                        - nullable: true
                                          type: integer
                                          minimum: -9007199254740991
                                          maximum: 9007199254740991
                                        - {}
                                  required:
                                    - price
                                    - rate
                                  additionalProperties: false
                              discountCodes:
                                type: object
                                additionalProperties:
                                  type: object
                                  properties:
                                    quantity:
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    totalDiscountValue:
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    discountCodeId:
                                      type: string
                                  required:
                                    - quantity
                                    - totalDiscountValue
                                  additionalProperties: false
                              manualDiscount:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              deposit:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              listPrice:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              originalListPrice:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            required:
                              - currency
                              - total
                              - subtotal
                              - totalTaxes
                              - totalDiscounts
                              - taxExcluded
                              - taxLines
                              - listPrice
                              - originalListPrice
                            additionalProperties: false
                          meta: {}
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                          modificationSummary:
                            type: object
                            properties:
                              refundedTotal:
                                type: number
                              refundReversedTotal:
                                type: number
                              cancelledTotal:
                                type: number
                              expiredTotal:
                                type: number
                              capturedTotal:
                                type: number
                              isFullyRefunded:
                                type: boolean
                              isPartiallyRefunded:
                                type: boolean
                              pendingRefundsTotal:
                                type: number
                              pendingCapturesTotal:
                                type: number
                              isCancelled:
                                type: boolean
                              isReversed:
                                type: boolean
                              isExpired:
                                type: boolean
                            required:
                              - refundedTotal
                              - refundReversedTotal
                              - cancelledTotal
                              - expiredTotal
                              - capturedTotal
                              - isFullyRefunded
                              - isPartiallyRefunded
                              - pendingRefundsTotal
                              - pendingCapturesTotal
                              - isCancelled
                              - isReversed
                              - isExpired
                            additionalProperties: false
                        required:
                          - id
                          - paymentId
                          - type
                          - name
                          - quantity
                          - pricing
                          - createdAt
                          - updatedAt
                          - modificationSummary
                        additionalProperties: false
                      transactions:
                        type: object
                        properties:
                          id:
                            type: string
                          paymentId:
                            type: string
                          originalTransactionId:
                            type: string
                          type:
                            type: string
                            enum:
                              - authorize
                              - capture
                              - refund
                              - refund_reverse
                              - cancel
                              - expire
                          status:
                            type: string
                            enum:
                              - pending
                              - succeeded
                              - failed
                          method:
                            type: string
                          customMethodId:
                            type: string
                          provider:
                            type: string
                          currency:
                            type: string
                          total:
                            type: number
                          providerReferenceId:
                            type: string
                          providerResponse: {}
                          cardBrand:
                            type: string
                          cardLast4:
                            type: string
                          occurredAt:
                            type: string
                          meta: {}
                          modificationSummary:
                            type: object
                            properties:
                              refundedTotal:
                                type: number
                              refundReversedTotal:
                                type: number
                              cancelledTotal:
                                type: number
                              expiredTotal:
                                type: number
                              capturedTotal:
                                type: number
                              isFullyRefunded:
                                type: boolean
                              isPartiallyRefunded:
                                type: boolean
                              pendingRefundsTotal:
                                type: number
                              pendingCapturesTotal:
                                type: number
                              isCancelled:
                                type: boolean
                              isReversed:
                                type: boolean
                              isExpired:
                                type: boolean
                            required:
                              - refundedTotal
                              - refundReversedTotal
                              - cancelledTotal
                              - expiredTotal
                              - capturedTotal
                              - isFullyRefunded
                              - isPartiallyRefunded
                              - pendingRefundsTotal
                              - pendingCapturesTotal
                              - isCancelled
                              - isReversed
                              - isExpired
                            additionalProperties: false
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                        required:
                          - id
                          - paymentId
                          - type
                          - status
                          - method
                          - provider
                          - currency
                          - total
                          - occurredAt
                          - modificationSummary
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      modificationSummary:
                        type: object
                        properties:
                          refundedTotal:
                            type: number
                          refundReversedTotal:
                            type: number
                          cancelledTotal:
                            type: number
                          expiredTotal:
                            type: number
                          capturedTotal:
                            type: number
                          isFullyRefunded:
                            type: boolean
                          isPartiallyRefunded:
                            type: boolean
                          pendingRefundsTotal:
                            type: number
                          pendingCapturesTotal:
                            type: number
                          isCancelled:
                            type: boolean
                          isReversed:
                            type: boolean
                          isExpired:
                            type: boolean
                        required:
                          - refundedTotal
                          - refundReversedTotal
                          - cancelledTotal
                          - expiredTotal
                          - capturedTotal
                          - isFullyRefunded
                          - isPartiallyRefunded
                          - pendingRefundsTotal
                          - pendingCapturesTotal
                          - isCancelled
                          - isReversed
                          - isExpired
                        additionalProperties: false
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                      tenantInfo:
                        type: object
                        properties:
                          name:
                            type: string
                          legalName:
                            type: string
                          businessId:
                            type: string
                          address:
                            type: string
                          phone:
                            type: string
                        required:
                          - name
                        additionalProperties: false
                    required:
                      - id
                      - type
                      - status
                      - pricing
                      - receiptNumber
                      - issuedAt
                      - lines
                      - transactions
                      - modificationSummary
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                  originalPayment:
                    type: object
                    properties:
                      id:
                        type: string
                      orderId:
                        type: string
                      type:
                        type: string
                        enum:
                          - sale
                          - deposit_auth
                          - deposit_capture
                          - refund
                          - refund_reverse
                          - cancel
                          - expire
                      status:
                        type: string
                        enum:
                          - pending
                          - succeeded
                          - failed
                          - voided
                      originalPaymentId:
                        type: string
                      pricing:
                        type: object
                        properties:
                          currency:
                            type: string
                          total:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          subtotal:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          additionalInfo:
                            type: string
                          totalTaxes:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          totalDiscounts:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          taxExcluded:
                            type: boolean
                          taxLines:
                            type: array
                            items:
                              type: object
                              properties:
                                combinedLabel:
                                  allOf:
                                    - type: object
                                      additionalProperties:
                                        type: string
                                    - type: object
                                      properties:
                                        def:
                                          type: string
                                      required:
                                        - def
                                      additionalProperties: false
                                label:
                                  allOf:
                                    - type: object
                                      additionalProperties:
                                        type: string
                                    - type: object
                                      properties:
                                        def:
                                          type: string
                                      required:
                                        - def
                                      additionalProperties: false
                                price:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                rate:
                                  type: number
                                taxableAmount:
                                  anyOf:
                                    - nullable: true
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    - {}
                              required:
                                - price
                                - rate
                              additionalProperties: false
                          discountCodes:
                            type: object
                            additionalProperties:
                              type: object
                              properties:
                                quantity:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                totalDiscountValue:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                discountCodeId:
                                  type: string
                              required:
                                - quantity
                                - totalDiscountValue
                              additionalProperties: false
                          manualDiscount:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          deposit:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          listPrice:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                          originalListPrice:
                            type: integer
                            minimum: -9007199254740991
                            maximum: 9007199254740991
                        required:
                          - currency
                          - total
                          - subtotal
                          - totalTaxes
                          - totalDiscounts
                          - taxExcluded
                          - taxLines
                          - listPrice
                          - originalListPrice
                        additionalProperties: false
                      receiptNumber:
                        nullable: true
                        type: number
                      issuedAt:
                        type: string
                      meta: {}
                      lines:
                        type: object
                        properties:
                          id:
                            type: string
                          paymentId:
                            type: string
                          type:
                            type: string
                            enum:
                              - line_item
                              - shipping
                              - deposit
                              - fee
                              - rounding
                          orderLineItemId:
                            type: string
                          invoiceId:
                            type: string
                          invoiceLineId:
                            type: string
                          name:
                            type: string
                          quantity:
                            type: number
                          pricing:
                            type: object
                            properties:
                              currency:
                                type: string
                              total:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              subtotal:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              additionalInfo:
                                type: string
                              totalTaxes:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              totalDiscounts:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              taxExcluded:
                                type: boolean
                              taxLines:
                                type: array
                                items:
                                  type: object
                                  properties:
                                    combinedLabel:
                                      allOf:
                                        - type: object
                                          additionalProperties:
                                            type: string
                                        - type: object
                                          properties:
                                            def:
                                              type: string
                                          required:
                                            - def
                                          additionalProperties: false
                                    label:
                                      allOf:
                                        - type: object
                                          additionalProperties:
                                            type: string
                                        - type: object
                                          properties:
                                            def:
                                              type: string
                                          required:
                                            - def
                                          additionalProperties: false
                                    price:
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    rate:
                                      type: number
                                    taxableAmount:
                                      anyOf:
                                        - nullable: true
                                          type: integer
                                          minimum: -9007199254740991
                                          maximum: 9007199254740991
                                        - {}
                                  required:
                                    - price
                                    - rate
                                  additionalProperties: false
                              discountCodes:
                                type: object
                                additionalProperties:
                                  type: object
                                  properties:
                                    quantity:
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    totalDiscountValue:
                                      type: integer
                                      minimum: -9007199254740991
                                      maximum: 9007199254740991
                                    discountCodeId:
                                      type: string
                                  required:
                                    - quantity
                                    - totalDiscountValue
                                  additionalProperties: false
                              manualDiscount:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              deposit:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              listPrice:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                              originalListPrice:
                                type: integer
                                minimum: -9007199254740991
                                maximum: 9007199254740991
                            required:
                              - currency
                              - total
                              - subtotal
                              - totalTaxes
                              - totalDiscounts
                              - taxExcluded
                              - taxLines
                              - listPrice
                              - originalListPrice
                            additionalProperties: false
                          meta: {}
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                          modificationSummary:
                            type: object
                            properties:
                              refundedTotal:
                                type: number
                              refundReversedTotal:
                                type: number
                              cancelledTotal:
                                type: number
                              expiredTotal:
                                type: number
                              capturedTotal:
                                type: number
                              isFullyRefunded:
                                type: boolean
                              isPartiallyRefunded:
                                type: boolean
                              pendingRefundsTotal:
                                type: number
                              pendingCapturesTotal:
                                type: number
                              isCancelled:
                                type: boolean
                              isReversed:
                                type: boolean
                              isExpired:
                                type: boolean
                            required:
                              - refundedTotal
                              - refundReversedTotal
                              - cancelledTotal
                              - expiredTotal
                              - capturedTotal
                              - isFullyRefunded
                              - isPartiallyRefunded
                              - pendingRefundsTotal
                              - pendingCapturesTotal
                              - isCancelled
                              - isReversed
                              - isExpired
                            additionalProperties: false
                        required:
                          - id
                          - paymentId
                          - type
                          - name
                          - quantity
                          - pricing
                          - createdAt
                          - updatedAt
                          - modificationSummary
                        additionalProperties: false
                      transactions:
                        type: object
                        properties:
                          id:
                            type: string
                          paymentId:
                            type: string
                          originalTransactionId:
                            type: string
                          type:
                            type: string
                            enum:
                              - authorize
                              - capture
                              - refund
                              - refund_reverse
                              - cancel
                              - expire
                          status:
                            type: string
                            enum:
                              - pending
                              - succeeded
                              - failed
                          method:
                            type: string
                          customMethodId:
                            type: string
                          provider:
                            type: string
                          currency:
                            type: string
                          total:
                            type: number
                          providerReferenceId:
                            type: string
                          providerResponse: {}
                          cardBrand:
                            type: string
                          cardLast4:
                            type: string
                          occurredAt:
                            type: string
                          meta: {}
                          modificationSummary:
                            type: object
                            properties:
                              refundedTotal:
                                type: number
                              refundReversedTotal:
                                type: number
                              cancelledTotal:
                                type: number
                              expiredTotal:
                                type: number
                              capturedTotal:
                                type: number
                              isFullyRefunded:
                                type: boolean
                              isPartiallyRefunded:
                                type: boolean
                              pendingRefundsTotal:
                                type: number
                              pendingCapturesTotal:
                                type: number
                              isCancelled:
                                type: boolean
                              isReversed:
                                type: boolean
                              isExpired:
                                type: boolean
                            required:
                              - refundedTotal
                              - refundReversedTotal
                              - cancelledTotal
                              - expiredTotal
                              - capturedTotal
                              - isFullyRefunded
                              - isPartiallyRefunded
                              - pendingRefundsTotal
                              - pendingCapturesTotal
                              - isCancelled
                              - isReversed
                              - isExpired
                            additionalProperties: false
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                        required:
                          - id
                          - paymentId
                          - type
                          - status
                          - method
                          - provider
                          - currency
                          - total
                          - occurredAt
                          - modificationSummary
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      modificationSummary:
                        type: object
                        properties:
                          refundedTotal:
                            type: number
                          refundReversedTotal:
                            type: number
                          cancelledTotal:
                            type: number
                          expiredTotal:
                            type: number
                          capturedTotal:
                            type: number
                          isFullyRefunded:
                            type: boolean
                          isPartiallyRefunded:
                            type: boolean
                          pendingRefundsTotal:
                            type: number
                          pendingCapturesTotal:
                            type: number
                          isCancelled:
                            type: boolean
                          isReversed:
                            type: boolean
                          isExpired:
                            type: boolean
                        required:
                          - refundedTotal
                          - refundReversedTotal
                          - cancelledTotal
                          - expiredTotal
                          - capturedTotal
                          - isFullyRefunded
                          - isPartiallyRefunded
                          - pendingRefundsTotal
                          - pendingCapturesTotal
                          - isCancelled
                          - isReversed
                          - isExpired
                        additionalProperties: false
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                      tenantInfo:
                        type: object
                        properties:
                          name:
                            type: string
                          legalName:
                            type: string
                          businessId:
                            type: string
                          address:
                            type: string
                          phone:
                            type: string
                        required:
                          - name
                        additionalProperties: false
                    required:
                      - id
                      - type
                      - status
                      - pricing
                      - receiptNumber
                      - issuedAt
                      - lines
                      - transactions
                      - modificationSummary
                      - createdAt
                      - updatedAt
                    additionalProperties: false
                  refundedAmount:
                    type: number
                  totalRefundedForTransaction:
                    type: number
                  transactionFullyRefunded:
                    type: boolean
                required:
                  - refundPayment
                  - originalPayment
                  - refundedAmount
                  - totalRefundedForTransaction
                  - transactionFullyRefunded
                additionalProperties: false
        '400':
          description: '400'
        '401':
          description: '401'
        '403':
          description: '403'
        '404':
          description: '404'
        '429':
          description: '429'
        '500':
          description: '500'
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-API-KEY
      in: header
      description: API key for the Twice API

````