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

<AgentInstructions>

## Submitting Feedback

If you encounter incorrect, outdated, or confusing documentation on this page, submit feedback:

POST https://help.kajabi.com/feedback

```json
{
  "path": "/api-reference/transactions/transaction-details",
  "feedback": "Description of the issue"
}
```

Only submit feedback when you have something specific and actionable to report.

</AgentInstructions>

# Transaction details

>   The transaction system is a critical part of Kajabi's payment infrastructure, handling all monetary operations while maintaining detailed records for accounting, reporting, and compliance purposes.

  ## Transaction Attributes
  * `provider` (string) - The payment processor used for the payment
  * `action` (string) - Indicate the type of transaction:
    * `charge` - One-time payment
    * `refund` - Money returned to customer
    * `subscribe` - New subscription
    * `subscription_charge` - Recurring subscription payment
    * `free_purchase` - $0 transaction
    * `test` - Test transaction
    * `dispute` - Disputed charge
    * `subscription_update` - Subscription modification
  * `state` (string) - The transaction's status:
    * `initialized` - Transaction started
    * `succeeded` - Transaction completed successfully
    * `failed` - Transaction failed
  * `payment_type` (string) - Indicates the payment structure (nullable)
  * `amount_in_cents` (integer) - The USD price in cents (for precise decimal handling) can be negative for refunds
  * `sales_tax_in_cents` (integer) - The USD sales tax in cents (for precise decimal handling)
  * `payment_fee_in_cents` (integer) - Payment processing fee associated with the transaction (Kajabi Payments only)
  * `currency` (string) - String representing the currency code (nullable) automatically upcased
    * Defaults to "USD" if not specified
  * `currency_symbol` (string) - String representing the currency symbol (nullable)
    * Example: "$" for USD
  * `formatted_amount` (string) - String representing the amount in a human-readable format
    * Includes currency symbol
    * Does not include currency code
    * Example: "$19.99"
  * `settlement_amount_in_cents` (integer) - Price of the payment in cents based on the settlement currency (Kajabi Payments only)
  * `settlement_fee_amount_in_cents` (integer) - Payment processing fee associated with the transaction based on the settlement currency (Kajabi Payments only)
  * `settlement_currency` (string) - Currency of the payment based on settlement, typically the currency of the attached bank account (Kajabi Payments only)
  * `created_at` (string) - The creation date and time, ISO date string format (read-only)

  ## Sparse Fields
  Use the `fields[transactions]` parameter to request only specific attributes:
  ### Only return amount_in_cents and sales_tax_in_cents attributes
  * `GET /v1/transactions/123?fields[transactions]=amount_in_cents,sales_tax_in_cents`

  Response will only include requested fields
  ```json
  {
    "data": {
      "id": "123",
      "type": "transactions",
      "attributes": {
        "amount_in_cents": 9900,
        "sales_tax_in_cents": 990
      }
    }
  }
  ```
  ## Include Relationships
  Use the `include` parameter to include related resources:
  ### Include customer and offer relationships
  * `GET /v1/transactions/123?include=customer,offer`

  Response will include related resources
  ```json
  {
    "data": {
      "id": "123",
      "type": "transactions",
      "attributes": {
        "action": "subscription_charge",
        "state": "succeeded",
        "payment_type": "subscription",
        "amount_in_cents": 100,
        "sales_tax_in_cents": 0,
        "currency": "USD",
        "currency_symbol": "$",
        "formatted_amount": "$1.00",
        "created_at": "2025-03-14T19:17:38.000Z"
      },
      "relationships": {
        "customer": {
          "data": {
            "id": "456",
            "type": "customers"
          }
        },
        "offer": {
          "data": {
            "id": "789",
            "type": "offers"
          }
        }
      }
    },
    "included": [
      {
        "id": "456",
        "type": "customers",
        "attributes": {
          "name": "John Doe",
          "email": "email@example.com",
          "avatar": "https://example.com/avatar.jpg",
          "external_user_id": "123",
          "public_bio": "Public Bio",
          "public_location": "Public Location",
          "public_website": "https://example.com",
          "socials": {
            "twitter": "https://twitter.com",
            "facebook": "https://facebook.com",
            "linkedin": "https://linkedin.com"
          },
          "net_revenue": 10000,
          "sign_in_count": 10,
          "last_request_at": "2024-01-15T10:30:00Z",
          "bounced_at": "2024-01-15T10:30:00Z",
          "created_at": "2024-01-15T10:30:00Z",
          "updated_at": "2024-01-15T10:30:00Z"
        }
      },
      {
        "id": "789",
        "type": "offers",
        "attributes": {
          "title": "Offer Title",
          "description": "Offer Description",
          "internal_title": "Internal Title",
          "price_in_cents": 9900,
          "payment_type": "payment_method",
          "token": "offer_token",
          "payment_method": "payment_method",
          "price_description": "Price Description",
          "checkout_url": "https://example.com/checkout",
          "recurring_offer": true,
          "subscription": true,
          "one_time": false,
          "single": false,
          "free": false
        }
      }
    ]
  }
  ```
  ## Using Multiple Parameters Together
  You can combine sparse fields and include in a single request:
  ### Get transaction with specific fields and included relationships
  * `GET /v1/transactions/123?include=customer&fields[transactions]=amount_in_cents,sales_tax_in_cents&fields[customers]=name,email`

  Response will include transaction with only requested fields and included customer with only name and email fields
  ```json
  {
    "data": {
      "id": "123",
      "type": "transactions",
      "attributes": {
        "amount_in_cents": 9900,
        "sales_tax_in_cents": 990
      },
      "relationships": {}
    },
    "included": [
      {
        "id": "456",
        "type": "customers",
        "attributes": {
          "name": "John Doe"
          "email": "john@example.com"
        }
      }
    ]
  }
```




## OpenAPI

````yaml /openapi.yaml get /v1/transactions/{id}
openapi: 3.1.1
info:
  title: Kajabi API V1
  version: 1.0.1
  description: >
    ## Public API

    * Server URL `https://api.kajabi.com`

    * Endpoint paths are prefixed with `/v1`

    * Version endpoint `GET https://api.kajabi.com/v1/version`

    * See the [Developers Site](https://developers.kajabi.com) for documentation
    and examples.

    * Try the demo [Postman
    collection](https://www.postman.com/kajabi-apis/beta-public-api-demo/collection/fg4iyaz/kajabi-public-api-v1)

    ## API Keys

    * Your API `client_id` and `client_secret` are available on the [User API
    Keys](https://app.kajabi.com/admin/settings/security) section of the Kajabi
    Admin Portal.
      * Custom API Keys can be created with specific permissions.
      * Click the "Create User API Key" button, enter a name (e.g. "My project"), select the user and permissions, and click "Create".
      * For security purposes, you may "Delete" or "Rotate" the api credentials at any time; which will invalidate any access tokens granted with the credentials.
    ## Video Walkthroughs

    *
    [Capabilities](https://drive.google.com/file/d/1Puc9B2sSdA-RQb7YMxmUXg4FVoEXytoc/view?usp=sharing)

    * [Getting
    Started](https://drive.google.com/file/d/1hbGRShkxven_QMWvgYrerHKURbcZrnvJ/view?usp=sharing)

    * [Error
    Examples](https://drive.google.com/file/d/1i0wQK71I1jpaZVsxYwsn62gVj40S_E7Y/view?usp=sharing)

    * [External Contact
    Form](https://drive.google.com/file/d/1HqpULXvan5TOK3LvM7nILCuCkCaX0kFT/view?usp=sharing)
  contact:
    email: support@kajabi.com
    name: Support
    url: >-
      https://help.kajabi.com/hc/en-us/articles/4404549690523-How-to-Get-Help-From-Kajabi-Live-Agents
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://api.kajabi.com
    description: Production
security: []
paths:
  /v1/transactions/{id}:
    get:
      tags:
        - Transactions
      summary: Transaction details
      description: |2
          The transaction system is a critical part of Kajabi's payment infrastructure, handling all monetary operations while maintaining detailed records for accounting, reporting, and compliance purposes.

          ## Transaction Attributes
          * `provider` (string) - The payment processor used for the payment
          * `action` (string) - Indicate the type of transaction:
            * `charge` - One-time payment
            * `refund` - Money returned to customer
            * `subscribe` - New subscription
            * `subscription_charge` - Recurring subscription payment
            * `free_purchase` - $0 transaction
            * `test` - Test transaction
            * `dispute` - Disputed charge
            * `subscription_update` - Subscription modification
          * `state` (string) - The transaction's status:
            * `initialized` - Transaction started
            * `succeeded` - Transaction completed successfully
            * `failed` - Transaction failed
          * `payment_type` (string) - Indicates the payment structure (nullable)
          * `amount_in_cents` (integer) - The USD price in cents (for precise decimal handling) can be negative for refunds
          * `sales_tax_in_cents` (integer) - The USD sales tax in cents (for precise decimal handling)
          * `payment_fee_in_cents` (integer) - Payment processing fee associated with the transaction (Kajabi Payments only)
          * `currency` (string) - String representing the currency code (nullable) automatically upcased
            * Defaults to "USD" if not specified
          * `currency_symbol` (string) - String representing the currency symbol (nullable)
            * Example: "$" for USD
          * `formatted_amount` (string) - String representing the amount in a human-readable format
            * Includes currency symbol
            * Does not include currency code
            * Example: "$19.99"
          * `settlement_amount_in_cents` (integer) - Price of the payment in cents based on the settlement currency (Kajabi Payments only)
          * `settlement_fee_amount_in_cents` (integer) - Payment processing fee associated with the transaction based on the settlement currency (Kajabi Payments only)
          * `settlement_currency` (string) - Currency of the payment based on settlement, typically the currency of the attached bank account (Kajabi Payments only)
          * `created_at` (string) - The creation date and time, ISO date string format (read-only)

          ## Sparse Fields
          Use the `fields[transactions]` parameter to request only specific attributes:
          ### Only return amount_in_cents and sales_tax_in_cents attributes
          * `GET /v1/transactions/123?fields[transactions]=amount_in_cents,sales_tax_in_cents`

          Response will only include requested fields
          ```json
          {
            "data": {
              "id": "123",
              "type": "transactions",
              "attributes": {
                "amount_in_cents": 9900,
                "sales_tax_in_cents": 990
              }
            }
          }
          ```
          ## Include Relationships
          Use the `include` parameter to include related resources:
          ### Include customer and offer relationships
          * `GET /v1/transactions/123?include=customer,offer`

          Response will include related resources
          ```json
          {
            "data": {
              "id": "123",
              "type": "transactions",
              "attributes": {
                "action": "subscription_charge",
                "state": "succeeded",
                "payment_type": "subscription",
                "amount_in_cents": 100,
                "sales_tax_in_cents": 0,
                "currency": "USD",
                "currency_symbol": "$",
                "formatted_amount": "$1.00",
                "created_at": "2025-03-14T19:17:38.000Z"
              },
              "relationships": {
                "customer": {
                  "data": {
                    "id": "456",
                    "type": "customers"
                  }
                },
                "offer": {
                  "data": {
                    "id": "789",
                    "type": "offers"
                  }
                }
              }
            },
            "included": [
              {
                "id": "456",
                "type": "customers",
                "attributes": {
                  "name": "John Doe",
                  "email": "email@example.com",
                  "avatar": "https://example.com/avatar.jpg",
                  "external_user_id": "123",
                  "public_bio": "Public Bio",
                  "public_location": "Public Location",
                  "public_website": "https://example.com",
                  "socials": {
                    "twitter": "https://twitter.com",
                    "facebook": "https://facebook.com",
                    "linkedin": "https://linkedin.com"
                  },
                  "net_revenue": 10000,
                  "sign_in_count": 10,
                  "last_request_at": "2024-01-15T10:30:00Z",
                  "bounced_at": "2024-01-15T10:30:00Z",
                  "created_at": "2024-01-15T10:30:00Z",
                  "updated_at": "2024-01-15T10:30:00Z"
                }
              },
              {
                "id": "789",
                "type": "offers",
                "attributes": {
                  "title": "Offer Title",
                  "description": "Offer Description",
                  "internal_title": "Internal Title",
                  "price_in_cents": 9900,
                  "payment_type": "payment_method",
                  "token": "offer_token",
                  "payment_method": "payment_method",
                  "price_description": "Price Description",
                  "checkout_url": "https://example.com/checkout",
                  "recurring_offer": true,
                  "subscription": true,
                  "one_time": false,
                  "single": false,
                  "free": false
                }
              }
            ]
          }
          ```
          ## Using Multiple Parameters Together
          You can combine sparse fields and include in a single request:
          ### Get transaction with specific fields and included relationships
          * `GET /v1/transactions/123?include=customer&fields[transactions]=amount_in_cents,sales_tax_in_cents&fields[customers]=name,email`

          Response will include transaction with only requested fields and included customer with only name and email fields
          ```json
          {
            "data": {
              "id": "123",
              "type": "transactions",
              "attributes": {
                "amount_in_cents": 9900,
                "sales_tax_in_cents": 990
              },
              "relationships": {}
            },
            "included": [
              {
                "id": "456",
                "type": "customers",
                "attributes": {
                  "name": "John Doe"
                  "email": "john@example.com"
                }
              }
            ]
          }
        ```
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
        - name: fields[transactions]
          in: query
          required: false
          description: >-
            Partial attributes as specified, e.g.
            fields[transactions]=amount_in_cents,sales_tax_in_cents
          schema:
            type: string
        - name: include
          in: query
          required: false
          description: Load the related resources, for example ?include=customer,offer
          schema:
            type: string
      responses:
        '200':
          description: Success, shows details of a specified transaction
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/transactions_show_response'
        '401':
          description: Unauthorized, Authorization header is missing or invalid
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/errors_unauthorized'
        '404':
          description: Not found, the resource is unknown
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/errors_unavailable'
      security:
        - Bearer: []
components:
  schemas:
    transactions_show_response:
      type: object
      properties:
        data:
          type: object
          properties:
            id:
              type: string
            type:
              type: string
            attributes:
              $ref: '#/components/schemas/transactions_attributes'
            relationships:
              type: object
              properties:
                customer:
                  type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/resource_identifier'
                offer:
                  type: object
                  properties:
                    data:
                      $ref: '#/components/schemas/resource_identifier'
        links:
          type: object
          properties:
            self:
              type: string
            current:
              type: string
    errors_unauthorized:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/errors_attributes'
    errors_unavailable:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/errors_attributes'
    transactions_attributes:
      type: object
      properties:
        action:
          type: string
        state:
          type: string
        payment_type:
          type:
            - string
            - 'null'
        amount_in_cents:
          type: integer
        sales_tax_in_cents:
          type: integer
        currency:
          type: string
        currency_symbol:
          type: string
        formatted_amount:
          type: string
        created_at:
          type: string
          format: date-time
          readOnly: true
          description: ISO 8601 date-time, read only
    resource_identifier:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
      required:
        - id
        - type
    errors_attributes:
      type: object
      properties:
        status:
          type: string
        source:
          type: object
          nullable: true
          properties:
            pointer:
              type: string
        title:
          type: string
        detail:
          type: string
  securitySchemes:
    Bearer:
      type: http
      scheme: bearer

````