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

# Process a charge

> Processes a charge against a balance for specified SKUs with idempotency support. The charge can be processed in credits or dollars depending on the useCredits flag. Requires billing.transactions.creator permission.



## OpenAPI

````yaml api-reference/billing.yaml post /charge
openapi: 3.0.3
info:
  title: billing
  description: >-
    The Billing Service manages billing-related operations across the platform.
    It handles all financial transactions, balance management, and SKU-based
    pricing across the platform.
  version: 1.0.0
servers:
  - url: https://billing.platform.arb.inc
security: []
tags:
  - name: /
  - name: _internal
  - name: balance
  - name: charge
  - name: checkout
  - name: pricing
  - name: skus
  - name: transactions
paths:
  /charge:
    post:
      tags:
        - charge
      summary: Process a charge
      description: >-
        Processes a charge against a balance for specified SKUs with idempotency
        support. The charge can be processed in credits or dollars depending on
        the useCredits flag. Requires billing.transactions.creator permission.
      operationId: createCharge
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - idempotencyKey
                - skus
                - createdBy
              properties:
                idempotencyKey:
                  type: string
                  description: Unique key to prevent duplicate charges (1-255 characters)
                  example: charge-2025-08-15-abc123def456
                userID:
                  type: string
                  format: uuid
                  description: >-
                    User ID to charge (exactly one of userID or orgID must be
                    provided)
                  example: 2720f109-0caf-4c62-af22-5d08c853711c
                orgID:
                  type: string
                  format: uuid
                  description: >-
                    Organization ID to charge (exactly one of userID or orgID
                    must be provided)
                  example: 3840f219-1dbf-5d73-bg33-6e19d964822d
                caseID:
                  type: string
                  description: >-
                    Optional case ID to associate with the charge (max 20
                    characters)
                  example: 2025-08-00292
                partyID:
                  type: string
                  description: Optional filing party ID (max 20 characters)
                  example: claimant
                skus:
                  type: array
                  description: List of SKUs to charge (at least one required)
                  items:
                    type: object
                    required:
                      - code
                      - quantity
                    properties:
                      code:
                        type: string
                        description: SKU code (1-100 characters)
                        example: DOCUMENT_FILING
                      quantity:
                        type: integer
                        description: Quantity of this SKU (minimum 1)
                        example: 1
                useCredits:
                  type: boolean
                  description: Whether to charge in credits (true) or dollars (false)
                  example: true
                taxCredits:
                  type: number
                  description: Tax amount in credits (must be non-negative)
                  example: 0.5
                taxDollars:
                  type: number
                  description: Tax amount in dollars (must be non-negative)
                  example: 0
                createdBy:
                  type: string
                  description: Identifier of who created this charge (1-255 characters)
                  example: user-2720f109-0caf-4c62-af22-5d08c853711c
      responses:
        '200':
          description: Charge processed successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  transactionID:
                    type: string
                    example: 7e2a8c9f-1b3d-4e6f-8a7c-9b1e3d5f7a9c
                  balanceID:
                    type: string
                    example: a1b2c3d4-e5f6-7890-abcd-ef1234567890
                  status:
                    type: string
                    example: completed
                  subtotal:
                    type: number
                    example: 10
                  tax:
                    type: number
                    example: 0.5
                  total:
                    type: number
                    example: 10.5
                  currency:
                    type: string
                    example: credits
                  balanceAfterCredits:
                    type: number
                    example: 140
                  balanceAfterDollars:
                    type: number
                    example: 25.75
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        skuCode:
                          type: string
                          example: DOCUMENT_FILING
                        skuName:
                          type: string
                          example: Document Filing
                        quantity:
                          type: integer
                          example: 1
                        unitPrice:
                          type: number
                          example: 10
                        lineSubtotal:
                          type: number
                          example: 10
                  created:
                    type: string
                    format: date-time
                    example: '2025-08-15T14:30:00.000Z'
        '403':
          description: Insufficient credits or balance
        '404':
          description: SKU not found
        '409':
          description: Transaction is still being processed
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      description: access token
      scheme: bearer
      bearerFormat: JWT

````