openapi: 3.2.0 info: title: Hilt Billing API description: Hilt Pay Workspace and Hilt Pay API routes for zero-custody Solana checkout, MPP metered payment channels, receipts, memberships, entitlements, native subscriptions, webhooks, and support context. version: 1.0.0 contact: name: Hilt url: https://www.hilt.so email: hello@hilt.so x-guidance: Start with POST /v1/access/agent-bootstrap. An agent can purchase 30 days of Starter, Growth, or Scale through the matching x402 V2 activation endpoint paid in Solana USDC. For metered integrations, settle PAYMENT-SIGNATURE through POST /v1/access/x402/settle and atomically consume through POST /v1/access/entitlements/consume before serving. Never send private keys, seed phrases, or wallet secrets. servers: - url: https://api.hilt.so tags: - name: Billing paths: /v1/billing/summary: get: tags: - Billing summary: Get Billing Summary operationId: get_billing_summary_v1_billing_summary_get responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/BillingSummaryResponse' /v1/billing/checkout/stripe: post: tags: - Billing summary: Create Stripe Checkout operationId: create_stripe_checkout_v1_billing_checkout_stripe_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StripeCheckoutRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/StripeCheckoutResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/billing/portal/stripe: post: tags: - Billing summary: Create Stripe Portal operationId: create_stripe_portal_v1_billing_portal_stripe_post requestBody: content: application/json: schema: $ref: '#/components/schemas/StripePortalRequest' required: true responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/StripePortalResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /v1/billing/refresh/stripe: post: tags: - Billing summary: Refresh Stripe Billing operationId: refresh_stripe_billing_v1_billing_refresh_stripe_post responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/StripeRefreshResponse' /v1/billing/webhooks/stripe: post: tags: - Billing summary: Stripe Webhook operationId: stripe_webhook_v1_billing_webhooks_stripe_post parameters: - name: Stripe-Signature in: header required: false schema: anyOf: - type: string - type: 'null' title: Stripe-Signature responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/StripeWebhookResponse' '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: schemas: StripePortalRequest: properties: return_url: type: string maxLength: 2048 minLength: 8 title: Return Url type: object required: - return_url title: StripePortalRequest StripeCheckoutRequest: properties: plan: type: string enum: - starter - growth - scale title: Plan interval: type: string enum: - monthly - yearly title: Interval default: monthly success_url: type: string maxLength: 2048 minLength: 8 title: Success Url cancel_url: type: string maxLength: 2048 minLength: 8 title: Cancel Url type: object required: - plan - success_url - cancel_url title: StripeCheckoutRequest StripePortalResponse: properties: portal_url: type: string title: Portal Url type: object required: - portal_url title: StripePortalResponse StripeRefreshResponse: properties: refreshed: type: boolean title: Refreshed tier: type: string title: Tier billing_status: type: string title: Billing Status stripe_subscription_id: anyOf: - type: string - type: 'null' title: Stripe Subscription Id stripe_price_id: anyOf: - type: string - type: 'null' title: Stripe Price Id current_period_end: anyOf: - type: string - type: 'null' title: Current Period End type: object required: - refreshed - tier - billing_status title: StripeRefreshResponse BillingPlanCardResponse: properties: slug: type: string title: Slug label: type: string title: Label description: type: string title: Description monthly_price_usd: anyOf: - type: integer - type: 'null' title: Monthly Price Usd yearly_price_usd: anyOf: - type: integer - type: 'null' title: Yearly Price Usd annual_discount_pct: anyOf: - type: integer - type: 'null' title: Annual Discount Pct transaction_fee_pct: type: number title: Transaction Fee Pct transaction_fee_flat_usd_cents: type: integer title: Transaction Fee Flat Usd Cents live_link_limit: anyOf: - type: integer - type: 'null' title: Live Link Limit seats_included: type: integer title: Seats Included manual_renewals: type: boolean title: Manual Renewals automatic_renewals: type: boolean title: Automatic Renewals merchant_analytics: type: boolean title: Merchant Analytics buy_notifications: type: boolean title: Buy Notifications receipt_exports: type: boolean title: Receipt Exports tax_exports: type: boolean title: Tax Exports custom_checkout_domains: type: boolean title: Custom Checkout Domains type: object required: - slug - label - description - monthly_price_usd - yearly_price_usd - annual_discount_pct - transaction_fee_pct - transaction_fee_flat_usd_cents - live_link_limit - seats_included - manual_renewals - automatic_renewals - merchant_analytics - buy_notifications - receipt_exports - tax_exports - custom_checkout_domains title: BillingPlanCardResponse StripeCheckoutResponse: properties: session_id: type: string title: Session Id checkout_url: type: string title: Checkout Url type: object required: - session_id - checkout_url title: StripeCheckoutResponse BillingAssetSummaryResponse: properties: token_mint: anyOf: - type: string - type: 'null' title: Token Mint asset_symbol: type: string title: Asset Symbol asset_decimals: type: integer title: Asset Decimals confirmed_payments: type: integer title: Confirmed Payments gross_minor_units: type: integer title: Gross Minor Units net_minor_units: type: integer title: Net Minor Units fee_minor_units: type: integer title: Fee Minor Units type: object required: - asset_symbol - asset_decimals - confirmed_payments - gross_minor_units - net_minor_units - fee_minor_units title: BillingAssetSummaryResponse BillingSummaryResponse: properties: tier: type: string title: Tier billing_status: type: string title: Billing Status billing_interval: type: string title: Billing Interval stripe_customer_id: anyOf: - type: string - type: 'null' title: Stripe Customer Id stripe_subscription_id: anyOf: - type: string - type: 'null' title: Stripe Subscription Id stripe_price_id: anyOf: - type: string - type: 'null' title: Stripe Price Id current_period_start: anyOf: - type: string - type: 'null' title: Current Period Start current_period_end: anyOf: - type: string - type: 'null' title: Current Period End trial_ends_at: anyOf: - type: string - type: 'null' title: Trial Ends At cancel_at_period_end: type: boolean title: Cancel At Period End active_live_links: type: integer title: Active Live Links total_templates: type: integer title: Total Templates live_link_limit: anyOf: - type: integer - type: 'null' title: Live Link Limit can_publish_live: type: boolean title: Can Publish Live transaction_fee_pct: type: number title: Transaction Fee Pct transaction_fee_flat_usd_cents: type: integer title: Transaction Fee Flat Usd Cents plan_monthly_price_usd: anyOf: - type: integer - type: 'null' title: Plan Monthly Price Usd plan_yearly_price_usd: anyOf: - type: integer - type: 'null' title: Plan Yearly Price Usd annual_discount_pct: anyOf: - type: integer - type: 'null' title: Annual Discount Pct stripe_publishable_key: anyOf: - type: string - type: 'null' title: Stripe Publishable Key portal_available: type: boolean title: Portal Available checkout_available: type: boolean title: Checkout Available available_plans: items: $ref: '#/components/schemas/BillingPlanCardResponse' type: array title: Available Plans merchant_total_confirmed_payments: type: integer title: Merchant Total Confirmed Payments merchant_assets: items: $ref: '#/components/schemas/BillingAssetSummaryResponse' type: array title: Merchant Assets gross_usdc_equivalent_minor_units: type: integer title: Gross Usdc Equivalent Minor Units net_usdc_equivalent_minor_units: type: integer title: Net Usdc Equivalent Minor Units fee_usdc_equivalent_minor_units: type: integer title: Fee Usdc Equivalent Minor Units gross_sol_equivalent: type: number title: Gross Sol Equivalent live_sol_price_usd: anyOf: - type: number - type: 'null' title: Live Sol Price Usd stripe_history: items: $ref: '#/components/schemas/StripeInvoiceHistoryResponse' type: array title: Stripe History type: object required: - tier - billing_status - billing_interval - cancel_at_period_end - active_live_links - total_templates - can_publish_live - transaction_fee_pct - transaction_fee_flat_usd_cents - portal_available - checkout_available - available_plans - merchant_total_confirmed_payments - merchant_assets - gross_usdc_equivalent_minor_units - net_usdc_equivalent_minor_units - fee_usdc_equivalent_minor_units - gross_sol_equivalent - stripe_history title: BillingSummaryResponse 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 HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError StripeWebhookResponse: properties: received: type: boolean title: Received ignored: anyOf: - type: boolean - type: 'null' title: Ignored reason: anyOf: - type: string - type: 'null' title: Reason duplicate: anyOf: - type: boolean - type: 'null' title: Duplicate additionalProperties: true type: object required: - received title: StripeWebhookResponse StripeInvoiceHistoryResponse: properties: invoice_id: anyOf: - type: string - type: 'null' title: Invoice Id invoice_number: anyOf: - type: string - type: 'null' title: Invoice Number status: type: string title: Status billing_reason: anyOf: - type: string - type: 'null' title: Billing Reason currency: type: string title: Currency amount_due_minor_units: type: integer title: Amount Due Minor Units amount_paid_minor_units: type: integer title: Amount Paid Minor Units created_at: anyOf: - type: string - type: 'null' title: Created At hosted_invoice_url: anyOf: - type: string - type: 'null' title: Hosted Invoice Url invoice_pdf: anyOf: - type: string - type: 'null' title: Invoice Pdf description: anyOf: - type: string - type: 'null' title: Description type: object required: - status - currency - amount_due_minor_units - amount_paid_minor_units title: StripeInvoiceHistoryResponse x-hilt-agent-commerce: offer: https://api.hilt.so/v1/agent-commerce/offer catalog: https://api.hilt.so/agent-catalog.json pricing: https://api.hilt.so/pricing x402: https://api.hilt.so/x402