Kong · Schema

BillingAppExternalInvoicing

External Invoicing app enables integration with third-party invoicing or payment system. The app supports a bi-directional synchronization pattern where OpenMeter Billing manages the invoice lifecycle while the external system handles invoice presentation and payment collection. Integration workflow: 1. The billing system creates invoices and transitions them through lifecycle states (draft → issuing → issued) 2. The integration receives webhook notifications about invoice state changes 3. The integration calls back to provide external system IDs and metadata 4. The integration reports payment events back via the payment status API State synchronization is controlled by hooks that pause invoice progression until the external system confirms synchronization via API callbacks.

API GatewayAI GatewayAI ConnectivityAgent GatewayEvent GatewayMCP RegistryService MeshLLMKafkaKonnectOpen-Source

Properties

Name Type Description
id string ULID (Universally Unique Lexicographically Sortable Identifier).
name string Display name of the resource. Between 1 and 256 characters.
description string Optional description of the resource. Maximum 1024 characters.
labels object
created_at string An ISO-8601 timestamp representation of entity creation date.
updated_at string An ISO-8601 timestamp representation of entity last update date.
deleted_at string An ISO-8601 timestamp representation of entity deletion date.
type string The app type.
definition object The app catalog definition that this installed app is based on.
status string Status of the app connection.
enable_draft_sync_hook boolean Enable draft synchronization hook. When enabled, invoices will pause at the draft state and wait for the integration to call the draft synchronized endpoint before progressing to the issuing state. Th
enable_issuing_sync_hook boolean Enable issuing synchronization hook. When enabled, invoices will pause at the issuing state and wait for the integration to call the issuing synchronized endpoint before progressing to the issued stat
View JSON Schema on GitHub

JSON Schema

kong-billingappexternalinvoicing-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "#/components/schemas/BillingAppExternalInvoicing",
  "title": "BillingAppExternalInvoicing",
  "description": "External Invoicing app enables integration with third-party invoicing or payment system.\n\nThe app supports a bi-directional synchronization pattern where OpenMeter Billing manages\nthe invoice lifecycle while the external system handles invoice presentation and payment collection.\n\nIntegration workflow:\n1. The billing system creates invoices and transitions them through lifecycle states (draft \u2192 issuing \u2192 issued)\n2. The integration receives webhook notifications about invoice state changes\n3. The integration calls back to provide external system IDs and metadata\n4. The integration reports payment events back via the payment status API\n\nState synchronization is controlled by hooks that pause invoice progression until the\nexternal system confirms synchronization via API callbacks.",
  "type": "object",
  "properties": {
    "id": {
      "description": "ULID (Universally Unique Lexicographically Sortable Identifier).",
      "type": "string",
      "example": "01G65Z755AFWAKHE12NY0CQ9FH",
      "pattern": "^[0-7][0-9A-HJKMNP-TV-Z]{25}$",
      "readOnly": true,
      "title": "ULID"
    },
    "name": {
      "description": "Display name of the resource.\n\nBetween 1 and 256 characters.",
      "type": "string",
      "maxLength": 256,
      "minLength": 1
    },
    "description": {
      "description": "Optional description of the resource.\n\nMaximum 1024 characters.",
      "type": "string",
      "maxLength": 1024
    },
    "labels": {
      "$ref": "#/components/schemas/Labels"
    },
    "created_at": {
      "description": "An ISO-8601 timestamp representation of entity creation date.",
      "type": "string",
      "format": "date-time",
      "example": "2023-01-01T01:01:01.001Z",
      "readOnly": true,
      "title": "RFC3339 Date-Time"
    },
    "updated_at": {
      "description": "An ISO-8601 timestamp representation of entity last update date.",
      "type": "string",
      "format": "date-time",
      "example": "2023-01-01T01:01:01.001Z",
      "readOnly": true,
      "title": "RFC3339 Date-Time"
    },
    "deleted_at": {
      "description": "An ISO-8601 timestamp representation of entity deletion date.",
      "type": "string",
      "format": "date-time",
      "example": "2023-01-01T01:01:01.001Z",
      "readOnly": true,
      "title": "RFC3339 Date-Time"
    },
    "type": {
      "description": "The app type.",
      "type": "string",
      "enum": [
        "external_invoicing"
      ],
      "readOnly": true
    },
    "definition": {
      "description": "The app catalog definition that this installed app is based on.",
      "type": "object",
      "example": {
        "type": "stripe",
        "name": "Stripe",
        "description": "Stripe integration allows you to collect payments with Stripe."
      },
      "properties": {
        "type": {
          "description": "Type of the app.",
          "type": "string",
          "enum": [
            "sandbox",
            "stripe",
            "external_invoicing"
          ],
          "readOnly": true,
          "x-speakeasy-unknown-values": "allow"
        },
        "name": {
          "description": "Name of the app.",
          "type": "string",
          "readOnly": true
        },
        "description": {
          "description": "Description of the app.",
          "type": "string",
          "readOnly": true
        }
      },
      "readOnly": true,
      "required": [
        "type",
        "name",
        "description"
      ]
    },
    "status": {
      "description": "Status of the app connection.",
      "type": "string",
      "enum": [
        "ready",
        "unauthorized"
      ],
      "readOnly": true,
      "x-speakeasy-unknown-values": "allow"
    },
    "enable_draft_sync_hook": {
      "description": "Enable draft synchronization hook.\n\nWhen enabled, invoices will pause at the draft state and wait for the integration\nto call the draft synchronized endpoint before progressing to the issuing state.\nThis allows the external system to validate and prepare the invoice data.\n\nWhen disabled, invoices automatically progress through the draft state based on\nthe configured workflow timing.",
      "type": "boolean"
    },
    "enable_issuing_sync_hook": {
      "description": "Enable issuing synchronization hook.\n\nWhen enabled, invoices will pause at the issuing state and wait for the integration\nto call the issuing synchronized endpoint before progressing to the issued state.\nThis ensures the external invoicing system has successfully created and finalized\nthe invoice before it is marked as issued.\n\nWhen disabled, invoices automatically progress through the issuing state and are\nimmediately marked as issued.",
      "type": "boolean"
    }
  },
  "required": [
    "id",
    "name",
    "created_at",
    "updated_at",
    "type",
    "definition",
    "status",
    "enable_draft_sync_hook",
    "enable_issuing_sync_hook"
  ]
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/kong-billingappexternalinvoicing"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.