Socotra Billing API

The Billing API from Socotra — 124 operation(s) for billing.

Operations 135

GET /billing/{tenantLocator}/payments/{locator} #
PUT /billing/{tenantLocator}/payments/{locator} #
PATCH /billing/{tenantLocator}/payments/{locator} #
GET /billing/{tenantLocator}/disbursements/{locator} #
PUT /billing/{tenantLocator}/disbursements/{locator} #
PATCH /billing/{tenantLocator}/disbursements/{locator} #
GET /billing/{tenantLocator}/creditDistributions/{locator} #
PUT /billing/{tenantLocator}/creditDistributions/{locator} #
PATCH /billing/{tenantLocator}/creditDistributions/{locator} #
POST /billing/{tenantLocator}/writeOffs #
POST /billing/{tenantLocator}/retryJobs/{policyLocator}/retryFailedTransactions #
POST /billing/{tenantLocator}/payments #
POST /billing/{tenantLocator}/payments/{locator}/number/set #
POST /billing/{tenantLocator}/payments/{locator}/number/generate #
POST /billing/{tenantLocator}/jobs/delinquencies/moratoriums #
POST /billing/{tenantLocator}/invoices #
POST /billing/{tenantLocator}/invoices/{locator}/transfer #
POST /billing/{tenantLocator}/invoices/{locator}/settle #
POST /billing/{tenantLocator}/invoices/{locator}/number/set #
POST /billing/{tenantLocator}/invoices/{locator}/number/generate #
POST /billing/{tenantLocator}/invoices/earlyInvoicing #
POST /billing/{tenantLocator}/holds #
POST /billing/{tenantLocator}/financialInstruments #
POST /billing/{tenantLocator}/financialInstruments/{locator}/setAsDefault #
POST /billing/{tenantLocator}/disbursements #
POST /billing/{tenantLocator}/disbursements/{locator}/number/set #
POST /billing/{tenantLocator}/disbursements/{locator}/number/generate #
POST /billing/{tenantLocator}/creditDistributions #
POST /billing/{tenantLocator}/accounts/{accountLocator}/charges #
POST /billing/{tenantLocator}/accounts/{accountLocator}/charges/reverse #
PATCH /billing/{tenantLocator}/writeOffs/{locator}/reverse #
PATCH /billing/{tenantLocator}/payments/{locator}/validate #
PATCH /billing/{tenantLocator}/payments/{locator}/reverse #
PATCH /billing/{tenantLocator}/payments/{locator}/reset #
PATCH /billing/{tenantLocator}/payments/{locator}/request #
PATCH /billing/{tenantLocator}/payments/{locator}/post #
PATCH /billing/{tenantLocator}/payments/{locator}/fail #
PATCH /billing/{tenantLocator}/payments/{locator}/discard #
PATCH /billing/{tenantLocator}/payments/{locator}/cancel #
GET /billing/{tenantLocator}/invoices/{locator} #
PATCH /billing/{tenantLocator}/invoices/{locator} #
PATCH /billing/{tenantLocator}/invoices/{locator}/writeOff #
PATCH /billing/{tenantLocator}/invoices/{locator}/aggregated #
PATCH /billing/{tenantLocator}/installments #
GET /billing/{tenantLocator}/holds/{locator} #
PATCH /billing/{tenantLocator}/holds/{locator} #
PATCH /billing/{tenantLocator}/holds/{locator}/validate #
PATCH /billing/{tenantLocator}/holds/{locator}/reset #
PATCH /billing/{tenantLocator}/holds/{locator}/release #
PATCH /billing/{tenantLocator}/holds/{locator}/discard #
PATCH /billing/{tenantLocator}/holds/{locator}/activate #
GET /billing/{tenantLocator}/financialInstruments/{locator} #
PATCH /billing/{tenantLocator}/financialInstruments/{locator} #
PATCH /billing/{tenantLocator}/disbursements/{locator}/validate #
PATCH /billing/{tenantLocator}/disbursements/{locator}/reverse #
PATCH /billing/{tenantLocator}/disbursements/{locator}/reset #
PATCH /billing/{tenantLocator}/disbursements/{locator}/reject #
PATCH /billing/{tenantLocator}/disbursements/{locator}/execute #
PATCH /billing/{tenantLocator}/disbursements/{locator}/discard #
PATCH /billing/{tenantLocator}/disbursements/{locator}/approve #
GET /billing/{tenantLocator}/delinquencies/{locator} #
PATCH /billing/{tenantLocator}/delinquencies/{locator} #
GET /billing/{tenantLocator}/delinquencies/events/{delinquencyEventLocator} #
PATCH /billing/{tenantLocator}/delinquencies/events/{delinquencyEventLocator} #
PATCH /billing/{tenantLocator}/creditDistributions/{locator}/validate #
PATCH /billing/{tenantLocator}/creditDistributions/{locator}/reverse #
PATCH /billing/{tenantLocator}/creditDistributions/{locator}/reset #
PATCH /billing/{tenantLocator}/creditDistributions/{locator}/execute #
PATCH /billing/{tenantLocator}/creditDistributions/{locator}/discard #
PATCH /billing/{tenantLocator}/accountBalances/{locator}/handleExcessFunds #
GET /billing/{tenantLocator}/writeOffs/{locator} #
GET /billing/{tenantLocator}/writeOffs/list #
GET /billing/{tenantLocator}/transactions/{transactionLocator}/charges/list #
GET /billing/{tenantLocator}/shortfallCredits/{locator} #
GET /billing/{tenantLocator}/shortfallCredits/list #
GET /billing/{tenantLocator}/settings/{locator} #
GET /billing/{tenantLocator}/policies/{policyLocator}/charges/list #
GET /billing/{tenantLocator}/payments/{locator}/subpayments/list #
GET /billing/{tenantLocator}/payments/{locator}/shortfallCredits/list #
GET /billing/{tenantLocator}/payments/{locator}/previewValidate #
GET /billing/{tenantLocator}/payments/{locator}/previewPost #
GET /billing/{tenantLocator}/payments/{locator}/invoices/list #
GET /billing/{tenantLocator}/payments/numbers/{paymentNumber} #
GET /billing/{tenantLocator}/payments/list #
GET /billing/{tenantLocator}/jobs/paymentExecutions/{locator} #
GET /billing/{tenantLocator}/jobs/invoicing/{jobLocator} #
GET /billing/{tenantLocator}/jobs/invoicing/accounts/{locator}/list #
GET /billing/{tenantLocator}/jobs/invoicesLifecycle/{locator} #
GET /billing/{tenantLocator}/jobs/invoices/accounts/{locator}/list #
GET /billing/{tenantLocator}/jobs/installments/transactions/{locator}/list #
GET /billing/{tenantLocator}/jobs/installments/quotes/{locator}/list #
GET /billing/{tenantLocator}/jobs/delinquencies/{delinquencyLocator}/list #
GET /billing/{tenantLocator}/jobs/delinquencies/{delinquencyLocator}/events/list #
GET /billing/{tenantLocator}/jobs/delinquencies/moratoriums/list #
GET /billing/{tenantLocator}/jobs/delinquencies/invoices/{invoiceLocator}/list #
GET /billing/{tenantLocator}/invoices/{locator}/payments/list #
GET /billing/{tenantLocator}/invoices/{locator}/invoices/list #
GET /billing/{tenantLocator}/invoices/{locator}/details #
GET /billing/{tenantLocator}/invoices/{locator}/credits/list #
GET /billing/{tenantLocator}/invoices/{locator}/creditDistributions/list #
GET /billing/{tenantLocator}/invoices/{invoiceLocator}/debits/list #
GET /billing/{tenantLocator}/invoices/transactions/{locator}/previewInvoices #
GET /billing/{tenantLocator}/invoices/quotes/{quoteLocator}/list #
GET /billing/{tenantLocator}/invoices/quotes/{locator}/previewInvoices #
GET /billing/{tenantLocator}/invoices/quotes/statelessPreview #
GET /billing/{tenantLocator}/invoices/policies/{policyLocator}/list #
GET /billing/{tenantLocator}/invoices/numbers/{invoiceNumber} #
GET /billing/{tenantLocator}/invoices/accounts/{accountLocator}/list #
GET /billing/{tenantLocator}/installments/{installmentLocator} #
GET /billing/{tenantLocator}/installments/transactions/{transactionLocator}/list #
GET /billing/{tenantLocator}/installments/quotes/{quoteLocator}/list #
GET /billing/{tenantLocator}/installments/quotes/statelessPreview #
GET /billing/{tenantLocator}/installments/policies/{policyLocator}/list #
GET /billing/{tenantLocator}/installmentLattices/{installmentLatticeLocator} #
GET /billing/{tenantLocator}/installmentLattices/quotes/{quoteLocator} #
GET /billing/{tenantLocator}/installmentLattices/policies/{policyLocator}/list #
GET /billing/{tenantLocator}/holds/accounts/{accountLocator}/list #
GET /billing/{tenantLocator}/financialInstruments/list #
GET /billing/{tenantLocator}/externalCashTransactions/{locator} #
GET /billing/events #
GET /billing/{tenantLocator}/disbursements/numbers/{disbursementNumber} #
GET /billing/{tenantLocator}/disbursements/list #
GET /billing/{tenantLocator}/delinquencies/{delinquencyLocator}/events/list #
GET /billing/{tenantLocator}/delinquencies/suspended/list #
GET /billing/{tenantLocator}/delinquencies/policies/{policyLocator}/list #
GET /billing/{tenantLocator}/delinquencies/invoices/{invoiceLocator}/list #
GET /billing/{tenantLocator}/delinquencies/accounts/{accountLocator}/list #
GET /billing/{tenantLocator}/credits/list #
GET /billing/{tenantLocator}/creditDistributions/{locator}/invoices/list #
GET /billing/{tenantLocator}/creditDistributions/list #
GET /billing/{tenantLocator}/accounts/{accountLocator}/charges/list #
GET /billing/{tenantLocator}/accounting/ledgerAccounts/{refType}/{refLocator} #
GET /billing/{tenantLocator}/accounting/ledgerAccounts/cash #
GET /billing/{tenantLocator}/accounting/ledgerAccounts/cash/list #
GET /billing/{tenantLocator}/accounting/faTransactions/{locator} #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/socotra-billing-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

socotra-billing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Socotra Insurance Suite OpenAPI Definition Billing API
  description: Socotra Insurance Suite API
  termsOfService: https://www.socotra.com
  version: v0
servers:
- url: /
  description: Generated server url
tags:
- name: Billing
paths:
  /billing/{tenantLocator}/payments/{locator}:
    get:
      operationId: fetchPayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - read
      deprecated: false
      tags:
      - Billing
    put:
      operationId: updatePaymentOverwriteData
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
    patch:
      operationId: updatePayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentUpdateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/disbursements/{locator}:
    get:
      operationId: fetchDisbursement
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisbursementResponse'
                deprecated: false
      x-securityGroup: disbursements
      x-securityPermission:
      - read
      deprecated: false
      tags:
      - Billing
    put:
      operationId: updateDisbursementReplaceData
      description: Updates the disbursement and replaces all existing data extensions with the data.
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisbursementUpdateReplaceDataRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisbursementResponse'
                deprecated: false
      x-securityGroup: disbursements
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
    patch:
      operationId: updateDisbursement
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisbursementUpdateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisbursementResponse'
                deprecated: false
      x-securityGroup: disbursements
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/creditDistributions/{locator}:
    get:
      operationId: fetchCreditDistribution
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditDistributionResponse'
                deprecated: false
      x-securityGroup: credit-distributions
      x-securityPermission:
      - read
      deprecated: false
      tags:
      - Billing
    put:
      operationId: createOrReplaceCreditDistribution
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditDistributionPutRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditDistributionResponse'
                deprecated: false
      x-securityGroup: credit-distributions
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
    patch:
      operationId: updateCreditDistribution
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditDistributionUpdateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditDistributionResponse'
                deprecated: false
      x-securityGroup: credit-distributions
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/writeOffs:
    post:
      operationId: writeOff
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WriteOffRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteOffResponse'
                deprecated: false
      x-securityGroup: write-offs
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/retryJobs/{policyLocator}/retryFailedTransactions:
    post:
      operationId: retryFailedTransactions
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: policyLocator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPageResponseInstallmentJobData'
                deprecated: false
      x-securityGroup: retry-jobs
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments:
    post:
      operationId: createPayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PaymentCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/number/set:
    post:
      operationId: setPaymentNumber
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      - name: paymentNumber
        in: query
        required: true
        schema:
          type: string
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/number/generate:
    post:
      operationId: generatePaymentNumber
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/jobs/delinquencies/moratoriums:
    post:
      operationId: runDelinquencyMoratoriumsWorkflow
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      responses:
        '200':
          description: OK
      x-securityGroup: jobs
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/invoices:
    post:
      operationId: createAggregatedInvoice
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AggregatedInvoiceCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
                deprecated: false
      x-securityGroup: invoices
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/invoices/{locator}/transfer:
    post:
      operationId: transferInvoicesBetweenAggregatedInvoices
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AggregatedInvoiceTransferRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
                deprecated: false
      x-securityGroup: invoices
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/invoices/{locator}/settle:
    post:
      operationId: settleNegativeOrZeroInvoice
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      - name: forced
        in: query
        required: false
        schema:
          type: boolean
          default: false
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListPageResponseCreditDistributionResponse'
                deprecated: false
      x-securityGroup: invoices
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/invoices/{locator}/number/set:
    post:
      operationId: setInvoiceNumber
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      - name: invoiceNumber
        in: query
        required: true
        schema:
          type: string
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
                deprecated: false
      x-securityGroup: invoices
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/invoices/{locator}/number/generate:
    post:
      operationId: generateInvoiceNumber
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceResponse'
                deprecated: false
      x-securityGroup: invoices
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/invoices/earlyInvoicing:
    post:
      operationId: initiateEarlyInvoicing
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EarlyInvoicingRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EarlyInvoicingResponse'
                deprecated: false
      x-securityGroup: invoices
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/holds:
    post:
      operationId: createHold
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/HoldCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HoldResponse'
                deprecated: false
      x-securityGroup: holds
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/financialInstruments:
    post:
      operationId: createFinancialInstrument
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FinancialInstrumentCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialInstrumentResponse'
                deprecated: false
      x-securityGroup: financial-instruments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/financialInstruments/{locator}/setAsDefault:
    post:
      operationId: setFinancialInstrumentAsDefault
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      - name: value
        in: query
        required: false
        schema:
          type: boolean
          default: true
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FinancialInstrumentResponse'
                deprecated: false
      x-securityGroup: financial-instruments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/disbursements:
    post:
      operationId: createDisbursement
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisbursementCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisbursementResponse'
                deprecated: false
      x-securityGroup: disbursements
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/disbursements/{locator}/number/set:
    post:
      operationId: setDisbursementNumber
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      - name: disbursementNumber
        in: query
        required: true
        schema:
          type: string
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisbursementResponse'
                deprecated: false
      x-securityGroup: disbursements
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/disbursements/{locator}/number/generate:
    post:
      operationId: generateDisbursementNumber
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisbursementResponse'
                deprecated: false
      x-securityGroup: disbursements
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/creditDistributions:
    post:
      operationId: createCreditDistribution
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditDistributionCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditDistributionResponse'
                deprecated: false
      x-securityGroup: credit-distributions
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/accounts/{accountLocator}/charges:
    post:
      operationId: addCharges
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: accountLocator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargesCreateRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                deprecated: false
                items:
                  $ref: '#/components/schemas/ChargeResponse'
                  deprecated: false
      x-securityGroup: charges
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/accounts/{accountLocator}/charges/reverse:
    post:
      operationId: reverseCharges
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: accountLocator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargesReversalRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                deprecated: false
                items:
                  $ref: '#/components/schemas/ChargeResponse'
                  deprecated: false
      x-securityGroup: charges
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/writeOffs/{locator}/reverse:
    patch:
      operationId: reverseWriteOff
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WriteOffResponse'
                deprecated: false
      x-securityGroup: write-offs
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/validate:
    patch:
      operationId: validatePayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/reverse:
    patch:
      operationId: reversePayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreditDistributionReverseRequest'
              deprecated: false
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/reset:
    patch:
      operationId: resetPayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/request:
    patch:
      operationId: executePayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/post:
    patch:
      operationId: postPayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/fail:
    patch:
      operationId: failPayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          format: ulid
          deprecated: false
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentResponse'
                deprecated: false
      x-securityGroup: payments
      x-securityPermission:
      - write
      deprecated: false
      tags:
      - Billing
  /billing/{tenantLocator}/payments/{locator}/discard:
    patch:
      operationId: discardPayment
      parameters:
      - name: tenantLocator
        in: path
        required: true
        schema:
          type: string
          format: uuid
          deprecated: false
      - name: locator
        in: path
        required: true
        schema:
          type: string
          fo

# --- truncated at 32 KB (258 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/socotra/refs/heads/main/openapi/socotra-billing-api-openapi.yml