Octane Credits API

Manage customer credit grants and ledgers

OpenAPI Specification

octane-credits-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Octane REST Admin Credits API
  description: REST API for managing meters, customers, pricing plans, subscriptions, measurements, and real-time usage data for usage-based billing workflows. Octane enables infrastructure and SaaS companies to implement flexible pay-as-you-go billing similar to Snowflake and AWS.
  version: 1.0.0
  contact:
    name: Octane Support
    url: https://www.getoctane.io
servers:
- url: https://api.getoctane.io
  description: Octane Production API
security:
- BearerApiKeyAuth: []
tags:
- name: Credits
  description: Manage customer credit grants and ledgers
paths:
  /customers/{customer_name}/credit_balance:
    get:
      summary: Get Customer Credit Balance
      description: Get the current credit balance for a customer.
      operationId: customersCustomerNameCreditBalanceGet
      tags:
      - Credits
      parameters:
      - name: customer_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Credit balance
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerCreditBalance'
  /customers/{customer_name}/credit_top_off_plan:
    get:
      summary: Get Customer Credit Top-Off Plan
      description: Get the credit top-off plan for a customer.
      operationId: customersCustomerNameCreditTopOffPlanGet
      tags:
      - Credits
      parameters:
      - name: customer_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Credit top-off plan
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditTopOffPlan'
    post:
      summary: Create Customer Credit Top-Off Plan
      description: Create a credit top-off plan for a customer.
      operationId: customersCustomerNameCreditTopOffPlanPost
      tags:
      - Credits
      parameters:
      - name: customer_name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCreditTopOffPlanInputArgs'
      responses:
        '200':
          description: Created credit top-off plan
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditTopOffPlan'
    put:
      summary: Update Customer Credit Top-Off Plan
      description: Update the credit top-off plan for a customer.
      operationId: customersCustomerNameCreditTopOffPlanPut
      tags:
      - Credits
      parameters:
      - name: customer_name
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCreditTopOffPlanInputArgs'
      responses:
        '200':
          description: Updated credit top-off plan
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditTopOffPlan'
    delete:
      summary: Delete Customer Credit Top-Off Plan
      description: Delete the credit top-off plan for a customer.
      operationId: customersCustomerNameCreditTopOffPlanDelete
      tags:
      - Credits
      parameters:
      - name: customer_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Credit top-off plan deleted
  /credits/grant:
    get:
      summary: List Credit Grants
      description: Get all credit grants for a vendor.
      operationId: creditsGrantGet
      tags:
      - Credits
      responses:
        '200':
          description: List of credit grants
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
    post:
      summary: Create Credit Grant
      description: Create a new credit grant.
      operationId: creditsGrantPost
      tags:
      - Credits
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCreditGrantArgs'
      responses:
        '200':
          description: Created credit grant
          content:
            application/json:
              schema:
                type: object
  /credits/grant/{grant_uuid}/grant:
    post:
      summary: Issue Credit Grant
      description: Issue a credit grant to a customer.
      operationId: creditsGrantGrantUuidGrantPost
      tags:
      - Credits
      parameters:
      - name: grant_uuid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Grant issued
          content:
            application/json:
              schema:
                type: object
  /credits/grant/{grant_uuid}/void:
    post:
      summary: Void Credit Grant
      description: Void a credit grant.
      operationId: creditsGrantGrantUuidVoidPost
      tags:
      - Credits
      parameters:
      - name: grant_uuid
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Grant voided
          content:
            application/json:
              schema:
                type: object
  /credits/ledger/{customer_name}:
    get:
      summary: Get Customer Credit Ledger
      description: Get the credit ledger for a customer.
      operationId: creditsLedgerCustomerNameGet
      tags:
      - Credits
      parameters:
      - name: customer_name
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Credit ledger
          content:
            application/json:
              schema:
                type: object
  /credits/ledger/{customer_name}/{as_of_str}:
    get:
      summary: Get Customer Credit Ledger As Of Date
      description: Get the credit ledger for a customer as of a specific date.
      operationId: creditsLedgerCustomerNameAsOfStrGet
      tags:
      - Credits
      parameters:
      - name: customer_name
        in: path
        required: true
        schema:
          type: string
      - name: as_of_str
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Credit ledger as of date
          content:
            application/json:
              schema:
                type: object
components:
  schemas:
    CustomerCreditBalance:
      type: object
      properties:
        available_balance:
          type: number
          description: Current available credit balance.
        customer_name:
          type: string
    CreditTopOffPlan:
      type: object
      properties:
        customer_name:
          type: string
        threshold:
          type: number
          description: Credit balance threshold that triggers a top-off.
        top_off_amount:
          type: number
          description: Amount of credits to add when threshold is reached.
        enabled:
          type: boolean
    CreateCreditGrantArgs:
      type: object
      properties:
        customer_name:
          type: string
          description: Name of the customer to grant credits to.
        amount:
          type: number
          description: Amount of credits to grant.
        expiration_time:
          type: string
          format: date-time
          description: When the credits expire.
        description:
          type: string
          description: Description for the credit grant.
    CreateCreditTopOffPlanInputArgs:
      type: object
      properties:
        threshold:
          type: number
          description: Credit balance threshold that triggers a top-off.
        top_off_amount:
          type: number
          description: Amount of credits to add when threshold is reached.
        enabled:
          type: boolean
  securitySchemes:
    BearerApiKeyAuth:
      type: http
      scheme: bearer
      description: API key passed as a Bearer token in the Authorization header.