openapi: 3.2.0 info: title: HiveMorph v0.1 Billing API description: 'Polymorphic agent runtime — single shape (Merchant), single supermodel (W2 MERCHANT). Three gates: NEED + YIELD + CLEAN-MONEY.' version: 0.1.0 tags: - name: Billing paths: /v1/billing/checkout: post: tags: - Billing summary: Billing Checkout description: 'Create a Square payment link for the given tier. If Square is unreachable or SQUARE_ACCESS_TOKEN is absent, return a pre-seeded fallback URL so the frontend always gets a clickable link.' operationId: billing_checkout_v1_billing_checkout_post requestBody: content: application/json: schema: $ref: '#/components/schemas/CheckoutRequest' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: true type: object title: Response Billing Checkout V1 Billing Checkout Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/billing/usdc/intent: post: tags: - Billing summary: Billing Usdc Intent description: 'Generate a USDC-on-Base payment intent. Returns treasury address, USDC contract, amount, and expiry. Persists intent to /tmp/hive_billing/intents.ndjson.' operationId: billing_usdc_intent_v1_billing_usdc_intent_post requestBody: content: application/json: schema: $ref: '#/components/schemas/USDCIntentRequest' required: true responses: '200': description: Successful Response content: application/json: schema: additionalProperties: true type: object title: Response Billing Usdc Intent V1 Billing Usdc Intent Post '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/billing/square/webhook: post: tags: - Billing summary: Billing Square Webhook description: 'Square webhook receiver. On payment.updated / invoice.payment_made, flips tenant active in tenants.json. HMAC-verifies against SQUARE_WEBHOOK_SIGNATURE_KEY if set; otherwise accepts and logs a warning.' operationId: billing_square_webhook_v1_billing_square_webhook_post responses: '200': description: Successful Response content: application/json: schema: additionalProperties: true type: object title: Response Billing Square Webhook V1 Billing Square Webhook Post /v1/billing/tenant/{tenant_id}: get: tags: - Billing summary: Billing Tenant description: Return billing state for a tenant. operationId: billing_tenant_v1_billing_tenant__tenant_id__get parameters: - name: tenant_id in: path required: true schema: type: string title: Tenant Id responses: '200': description: Successful Response content: application/json: schema: type: object additionalProperties: true title: Response Billing Tenant V1 Billing Tenant Tenant Id Get '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError USDCIntentRequest: properties: tenant_id: type: string title: Tenant Id tier: type: string title: Tier type: object required: - tenant_id - tier title: USDCIntentRequest CheckoutRequest: properties: tenant_id: type: string title: Tenant Id tier: type: string title: Tier email: type: string title: Email type: object required: - tenant_id - tier - email title: CheckoutRequest