Hilt · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Hilt So Hilt Pay API

40 actions 40 updates phrasing extends openapi/hilt-so-hilt-pay-api-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Hilt's API. It is a proposal applied on top of the contract, not a document Hilt publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 40 · first 16 shown; the file carries all of them

$.info
$.paths['/v1/agent-commerce/offer'].get
$.paths['/v1/agent-commerce/catalog'].get
$.paths['/v1/agent-commerce/pricing'].get
$.paths['/v1/agent-commerce/plans/starter/activate'].post
$.paths['/v1/agent-commerce/plans/growth/activate'].post
$.paths['/v1/agent-commerce/plans/scale/activate'].post
$.paths['/v1/agent-commerce/plans/claim'].post
$.paths['/v1/access/agent-bootstrap'].post
$.paths['/v1/access/agent-bootstrap/{setup_intent_id}/status'].post
$.paths['/v1/access/agent-bootstrap/{setup_intent_id}/manifest'].post
$.paths['/v1/access/agent-bootstrap/{setup_intent_id}/approve'].post
$.paths['/v1/access/rails'].get
$.paths['/v1/access/rail-settings'].get
$.paths['/v1/access/rail-settings/{rail_id}'].put
$.paths['/v1/access/native-subscriptions/{authorization_id}'].get

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Hilt So Hilt Pay API
  version: 1.0.0
extends: openapi/hilt-so-hilt-pay-api-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-09-26'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 39
- target: $.paths['/v1/agent-commerce/offer'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the Hilt Pay API marketplace offer
      effect: read
      questions:
      - What plans does the Hilt Pay API marketplace offer and how can I buy them?
      - Is there a free Agent Bootstrap route listed alongside the paid plans?
      instructions:
      - text: Show me the Hilt Pay API marketplace offer.
      - text: List the live purchase paths for the API plans.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/agent-commerce/catalog'].get
  update:
    x-apievangelist-phrasing:
      intent: Get the agent-commerce catalog
      effect: read
      questions:
      - What products and tools are in the canonical agent-commerce catalog?
      - Where can an agent read the full list of things it can buy from Hilt?
      instructions:
      - text: Fetch the agent-commerce catalog.
      - text: Show everything in the canonical agent catalog.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/agent-commerce/pricing'].get
  update:
    x-apievangelist-phrasing:
      intent: Get agent-commerce pricing
      effect: read
      questions:
      - How much do the Starter, Growth and Scale plans cost?
      - What are the canonical USDC prices for agent purchases?
      instructions:
      - text: Show the agent-commerce pricing.
      - text: Get the current price list for the API plans.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/agent-commerce/plans/starter/activate'].post
  update:
    x-apievangelist-phrasing:
      intent: Buy the Starter plan with x402
      effect: write
      questions:
      - Can my agent pay 79 USDC over x402 to activate the Starter plan?
      - What does it take to buy 30 days of Starter and receive a live key?
      instructions:
      - text: Activate Starter for setup intent {setup_intent_id} with token {setup_token} and claim {delivery_claim}.
        slots:
          setup_intent_id: requestBody.setup_intent_id
          setup_token: requestBody.setup_token
          delivery_claim: requestBody.delivery_claim
      - text: Pay 79 USDC via x402 for the Starter plan on setup intent {setup_intent_id}.
        slots:
          setup_intent_id: requestBody.setup_intent_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/agent-commerce/plans/growth/activate'].post
  update:
    x-apievangelist-phrasing:
      intent: Buy the Growth plan with x402
      effect: write
      questions:
      - Can an agent pay 349 USDC through x402 to activate the Growth plan?
      - What do I send to buy 30 days of Growth tier and get a live API key?
      instructions:
      - text: Activate Growth for setup intent {setup_intent_id} with token {setup_token} and claim {delivery_claim}.
        slots:
          setup_intent_id: requestBody.setup_intent_id
          setup_token: requestBody.setup_token
          delivery_claim: requestBody.delivery_claim
      - text: Pay 349 USDC via x402 for the Growth plan on setup intent {setup_intent_id}.
        slots:
          setup_intent_id: requestBody.setup_intent_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/agent-commerce/plans/scale/activate'].post
  update:
    x-apievangelist-phrasing:
      intent: Buy the Scale plan with x402
      effect: write
      questions:
      - Can I pay 1250 USDC with x402 to unlock the Scale plan?
      - What's needed to activate 30 days of the top Scale tier?
      instructions:
      - text: Activate Scale for setup intent {setup_intent_id} with token {setup_token} and claim {delivery_claim}.
        slots:
          setup_intent_id: requestBody.setup_intent_id
          setup_token: requestBody.setup_token
          delivery_claim: requestBody.delivery_claim
      - text: Pay 1250 USDC via x402 for the Scale plan on setup intent {setup_intent_id}.
        slots:
          setup_intent_id: requestBody.setup_intent_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/agent-commerce/plans/claim'].post
  update:
    x-apievangelist-phrasing:
      intent: Recover a live key after a marketplace purchase
      effect: write
      questions:
      - I paid for a plan but never got the key - can I claim it again?
      - What do I need to recover a live key after a settled marketplace payment?
      instructions:
      - text: Claim the live key for purchase {purchase_intent_id} using setup intent {setup_intent_id}, token {setup_token} and claim {delivery_claim}.
        slots:
          purchase_intent_id: requestBody.purchase_intent_id
          setup_intent_id: requestBody.setup_intent_id
          setup_token: requestBody.setup_token
          delivery_claim: requestBody.delivery_claim
      - text: Recover my key from purchase {purchase_intent_id}.
        slots:
          purchase_intent_id: requestBody.purchase_intent_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/agent-bootstrap'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a sandbox setup intent for an agent
      effect: write
      questions:
      - How does an agent get started with a free sandbox setup intent?
      - Can I request specific permissions when bootstrapping an agent?
      instructions:
      - text: Create a bootstrap setup intent for agent {agent_name}.
        slots:
          agent_name: requestBody.agent_name
      - text: Bootstrap agent {agent_name} on {agent_platform} for use case {requested_use_case}.
        slots:
          agent_name: requestBody.agent_name
          agent_platform: requestBody.agent_platform
          requested_use_case: requestBody.requested_use_case
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/agent-bootstrap/{setup_intent_id}/status'].post
  update:
    x-apievangelist-phrasing:
      intent: Check an agent setup intent's status
      effect: read
      questions:
      - Has my agent's setup intent been approved yet?
      - Where can I poll the status of an Agent Bootstrap intent?
      instructions:
      - text: Check status of setup intent {setup_intent_id} with token {setup_token}.
        slots:
          setup_intent_id: path.setup_intent_id
          setup_token: requestBody.setup_token
      - text: Tell me whether bootstrap intent {setup_intent_id} is ready.
        slots:
          setup_intent_id: path.setup_intent_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/agent-bootstrap/{setup_intent_id}/manifest'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit an agent setup manifest for evaluation
      effect: write
      questions:
      - Can I attach a manifest describing my agent to its setup intent?
      - How is an agent's setup manifest evaluated?
      instructions:
      - text: Attach manifest {manifest} to setup intent {setup_intent_id} with token {setup_token}.
        slots:
          manifest: requestBody.manifest
          setup_intent_id: path.setup_intent_id
          setup_token: requestBody.setup_token
      - text: Submit my agent manifest for intent {setup_intent_id}.
        slots:
          setup_intent_id: path.setup_intent_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/agent-bootstrap/{setup_intent_id}/approve'].post
  update:
    x-apievangelist-phrasing:
      intent: Approve an agent setup intent
      effect: write
      questions:
      - As the owner, how do I approve an agent's setup request?
      - Can approving an agent also issue it a live key?
      instructions:
      - text: Approve setup intent {setup_intent_id} with token {setup_token}.
        slots:
          setup_intent_id: path.setup_intent_id
          setup_token: requestBody.setup_token
      - text: Approve intent {setup_intent_id} and issue a live key named {live_key_name}.
        slots:
          setup_intent_id: path.setup_intent_id
          live_key_name: requestBody.live_key_name
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/rails'].get
  update:
    x-apievangelist-phrasing:
      intent: List supported payment rails
      effect: read
      questions:
      - Which payment rails does the Hilt Pay API support?
      - What settlement options can products be paid through?
      instructions:
      - text: List the available payment rails.
      - text: Show all supported rails.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/rail-settings'].get
  update:
    x-apievangelist-phrasing:
      intent: List my rail settings
      effect: read
      questions:
      - Which rails have I enabled and where do they pay out?
      - Can I see my current configuration for each payment rail?
      instructions:
      - text: Show my rail settings.
      - text: List how each of my rails is configured.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/rail-settings/{rail_id}'].put
  update:
    x-apievangelist-phrasing:
      intent: Configure a payment rail
      effect: write
      questions:
      - How do I set the payout address for one of my rails?
      - Can I switch a rail off or change how fees are collected on it?
      instructions:
      - text: Enable rail {rail_id} with payout address {payout_address}, key {idem}.
        slots:
          rail_id: path.rail_id
          payout_address: requestBody.payout_address
          idem: header.Idempotency-Key
      - text: Set rail {rail_id} enabled to {enabled} using idempotency key {idem}.
        slots:
          rail_id: path.rail_id
          enabled: requestBody.enabled
          idem: header.Idempotency-Key
      - text: Change the fee collection mode on rail {rail_id} to {fee_collection_mode}, key {idem}.
        slots:
          rail_id: path.rail_id
          fee_collection_mode: requestBody.fee_collection_mode
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/native-subscriptions/{authorization_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Read a Solana native subscription authorization
      effect: read
      questions:
      - Can I look up a buyer's on-chain subscription authorization?
      - What's the state of a native Solana subscription?
      instructions:
      - text: Show native subscription {authorization_id}.
        slots:
          authorization_id: path.authorization_id
      - text: Read the authorization details for {authorization_id}.
        slots:
          authorization_id: path.authorization_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/native-subscriptions/{authorization_id}/cancel-intent'].post
  update:
    x-apievangelist-phrasing:
      intent: Start a buyer's native subscription cancellation
      effect: destructive
      questions:
      - How does a buyer begin cancelling a native Solana subscription?
      - Can the cancellation take effect at the end of the current period?
      instructions:
      - text: Create a cancellation intent for subscription {authorization_id}.
        slots:
          authorization_id: path.authorization_id
      - text: Start cancelling {authorization_id} at period end for reason {reason}.
        slots:
          authorization_id: path.authorization_id
          reason: requestBody.reason
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/native-subscriptions/{authorization_id}/cancel-confirm'].post
  update:
    x-apievangelist-phrasing:
      intent: Confirm a native subscription cancellation
      effect: destructive
      questions:
      - Where do I submit the on-chain cancel transaction to finish cancelling a subscription?
      - Can cancellation be verified on-chain and the authority revoked right away?
      instructions:
      - text: Confirm cancellation of {authorization_id} with transaction {cancel_tx_signature}, key {idem}.
        slots:
          authorization_id: path.authorization_id
          cancel_tx_signature: requestBody.cancel_tx_signature
          idem: header.Idempotency-Key
      - text: Finalize cancel of {authorization_id} with revoke signature {revoke_tx_signature}, key {idem}.
        slots:
          authorization_id: path.authorization_id
          revoke_tx_signature: requestBody.revoke_tx_signature
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/apps'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a Hilt Pay API app
      effect: write
      questions:
      - How do I register an app to group my paid API products?
      - Can I set a default payment rail when creating an app?
      instructions:
      - text: Create an access app named {name} with idempotency key {idem}.
        slots:
          name: requestBody.name
          idem: header.Idempotency-Key
      - text: Create app {name} using default rail {default_rail}, key {idem}.
        slots:
          name: requestBody.name
          default_rail: requestBody.default_rail
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/products'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a paid API access product
      effect: write
      questions:
      - Can I sell metered or subscription access to my API as a product?
      - What billing models can an access product use?
      instructions:
      - text: Create an access product {title} priced at {amount_minor_units}, key {idem}.
        slots:
          title: requestBody.title
          amount_minor_units: requestBody.amount_minor_units
          idem: header.Idempotency-Key
      - text: Create an access product under app {access_app_id} with billing model {billing_model}, key {idem}.
        slots:
          access_app_id: requestBody.access_app_id
          billing_model: requestBody.billing_model
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/setup/readiness'].get
  update:
    x-apievangelist-phrasing:
      intent: Check Hilt Pay API setup readiness
      effect: read
      questions:
      - Is my app or product fully set up to start accepting agent payments?
      - What setup steps are still missing before going live?
      instructions:
      - text: Check setup readiness for product {product_id}.
        slots:
          product_id: query.product_id
      - text: Inspect readiness of app {access_app_id} in {mode} mode.
        slots:
          access_app_id: query.access_app_id
          mode: query.mode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/products/available-rails'].get
  update:
    x-apievangelist-phrasing:
      intent: Look up a product's rails by external ID
      effect: read
      questions:
      - Which rails can pay for a product I only know by my own external ID?
      - Can I find available rails without the Hilt product ID?
      instructions:
      - text: List rails available for external product {external_product_id}.
        slots:
          external_product_id: query.external_product_id
      - text: Look up payable rails for external product {external_product_id} in {mode} mode.
        slots:
          external_product_id: query.external_product_id
          mode: query.mode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/products/{product_id}/available-rails'].get
  update:
    x-apievangelist-phrasing:
      intent: List rails available for a product
      effect: read
      questions:
      - Which payment rails are enabled for this specific product ID?
      - Can buyers pay this product on more than one rail?
      instructions:
      - text: List available rails for product {product_id}.
        slots:
          product_id: path.product_id
      - text: Show which rails product {product_id} accepts in {mode} mode.
        slots:
          product_id: path.product_id
          mode: query.mode
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/payment-sessions'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a payment session for an access product
      effect: write
      questions:
      - How do I start a live payment session for a customer buying API access?
      - Can I pick the rail and payment protocol for a payment session?
      instructions:
      - text: Create a payment session for product {product_id} and customer {external_customer_id}, key {idem}.
        slots:
          product_id: requestBody.product_id
          external_customer_id: requestBody.external_customer_id
          idem: header.Idempotency-Key
      - text: Open a live payment session on rail {rail} for product {product_id}, key {idem}.
        slots:
          rail: requestBody.rail
          product_id: requestBody.product_id
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/metered-sessions'].post
  update:
    x-apievangelist-phrasing:
      intent: Open an MPP metered payment session
      effect: write
      questions:
      - Can I charge a customer per unit with a spending cap using MPP?
      - What sets the maximum a metered session can spend?
      instructions:
      - text: Open a metered session for customer {external_customer_id} capped at {cap_minor_units}, key {idem}.
        slots:
          external_customer_id: requestBody.external_customer_id
          cap_minor_units: requestBody.cap_minor_units
          idem: header.Idempotency-Key
      - text: Create an MPP metered session on product {product_id} for {external_customer_id} with cap {cap_minor_units}, key {idem}.
        slots:
          product_id: requestBody.product_id
          external_customer_id: requestBody.external_customer_id
          cap_minor_units: requestBody.cap_minor_units
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/metered-sessions/{session_id}/authorize'].post
  update:
    x-apievangelist-phrasing:
      intent: Authorize actions on an MPP metered session
      effect: write
      questions:
      - How does a payer open, top up, commit or close a metered session?
      - Where does the MPP payment authorization for a metered session go?
      instructions:
      - text: Authorize metered session {session_id}.
        slots:
          session_id: path.session_id
      - text: Send payment credential {authorization} to metered session {session_id}.
        slots:
          authorization: header.Authorization
          session_id: path.session_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/metered-sessions/{session_id}/deliveries'].post
  update:
    x-apievangelist-phrasing:
      intent: Reserve a metered delivery on an MPP session
      effect: write
      questions:
      - Can I reserve units against an open metered session before delivering them?
      - How long does a delivery reservation hold?
      instructions:
      - text: Reserve {units} units on metered session {session_id}, key {idem}.
        slots:
          units: requestBody.units
          session_id: path.session_id
          idem: header.Idempotency-Key
      - text: Reserve delivery {delivery_id} on session {session_id} for {ttl_seconds} seconds, key {idem}.
        slots:
          delivery_id: requestBody.delivery_id
          session_id: path.session_id
          ttl_seconds: requestBody.ttl_seconds
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/metered-sessions/{session_id}/commits'].post
  update:
    x-apievangelist-phrasing:
      intent: Commit a reserved metered delivery
      effect: write
      questions:
      - How do I commit a reserved delivery with the payer's cumulative voucher?
      - What finalizes a delivery I reserved on a metered session?
      instructions:
      - text: Commit delivery {deliveryId} on session {session_id} with voucher {voucher}.
        slots:
          deliveryId: requestBody.deliveryId
          session_id: path.session_id
          voucher: requestBody.voucher
      - text: Finalize reserved delivery {deliveryId} for metered session {session_id}.
        slots:
          deliveryId: requestBody.deliveryId
          session_id: path.session_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/metered-sessions/{session_id}/settle'].post
  update:
    x-apievangelist-phrasing:
      intent: Settle an MPP metered session
      effect: write
      questions:
      - When I'm done metering, how do I collect payment for the session?
      - Does settling use the highest verified voucher?
      instructions:
      - text: Settle metered session {session_id} with idempotency key {idem}.
        slots:
          session_id: path.session_id
          idem: header.Idempotency-Key
      - text: Collect payment on session {session_id} at its highest voucher, key {idem}.
        slots:
          session_id: path.session_id
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/metered-sessions/{session_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Read an MPP metered session
      effect: read
      questions:
      - What has been delivered and paid on a metered session so far?
      - Can I see the delivery evidence for a metered session?
      instructions:
      - text: Show metered session {session_id}.
        slots:
          session_id: path.session_id
      - text: Get delivery evidence for metered session {session_id}.
        slots:
          session_id: path.session_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/sandbox/payment-sessions'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a sandbox payment session
      effect: write
      questions:
      - Can I test the payment session flow without moving real money?
      - How long does a sandbox payment session stay open?
      instructions:
      - text: Create a sandbox payment session for product {product_id}, key {idem}.
        slots:
          product_id: requestBody.product_id
          idem: header.Idempotency-Key
      - text: Open a test payment session for {email} lasting {ttl_minutes} minutes, key {idem}.
        slots:
          email: requestBody.email
          ttl_minutes: requestBody.ttl_minutes
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/sandbox/payment-sessions/{sandbox_session_id}/confirm'].post
  update:
    x-apievangelist-phrasing:
      intent: Confirm a sandbox payment proof
      effect: write
      questions:
      - How do I complete a sandbox payment session with a test proof?
      - Can I simulate a successful payment in the sandbox?
      instructions:
      - text: Confirm sandbox session {sandbox_session_id} with proof {proof}, key {idem}.
        slots:
          sandbox_session_id: path.sandbox_session_id
          proof: requestBody.proof
          idem: header.Idempotency-Key
      - text: Mark sandbox payment {sandbox_session_id} as paid using proof {proof}, key {idem}.
        slots:
          sandbox_session_id: path.sandbox_session_id
          proof: requestBody.proof
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/payment-proofs'].post
  update:
    x-apievangelist-phrasing:
      intent: Submit a live rail payment proof
      effect: write
      questions:
      - Where do I send proof that a customer paid on a rail?
      - Can a payment proof be tied to an existing payment session?
      instructions:
      - text: Submit payment proof {proof_payload} with idempotency key {idem}.
        slots:
          proof_payload: requestBody.proof_payload
          idem: header.Idempotency-Key
      - text: Submit proof {proof_payload} for payment session {payment_session_id}, key {idem}.
        slots:
          proof_payload: requestBody.proof_payload
          payment_session_id: requestBody.payment_session_id
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/x402/settle'].post
  update:
    x-apievangelist-phrasing:
      intent: Verify and settle an x402 payment
      effect: write
      questions:
      - How do I verify and settle an x402 V2 payment signature?
      - Which payment session does an x402 settlement apply to?
      instructions:
      - text: Settle the x402 payment for session {payment_session_id}, key {idem}.
        slots:
          payment_session_id: requestBody.payment_session_id
          idem: header.Idempotency-Key
      - text: Verify x402 signature {payment_signature} for session {payment_session_id}, key {idem}.
        slots:
          payment_signature: requestBody.payment_signature
          payment_session_id: requestBody.payment_session_id
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/entitlements/check'].post
  update:
    x-apievangelist-phrasing:
      intent: Check a customer's access entitlement
      effect: read
      questions:
      - Does this customer currently have paid access to my product?
      - Can I check access by wallet or email instead of customer ID?
      instructions:
      - text: Check whether customer {external_customer_id} has access to product {product_id}.
        slots:
          external_customer_id: requestBody.external_customer_id
          product_id: requestBody.product_id
      - text: Check entitlement for wallet {wallet} on product {product_id}.
        slots:
          wallet: requestBody.wallet
          product_id: requestBody.product_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/entitlements/consume'].post
  update:
    x-apievangelist-phrasing:
      intent: Consume metered entitlement usage
      effect: write
      questions:
      - How do I deduct usage units from a customer's entitlement?
      - Is usage consumption atomic so I don't double-count?
      instructions:
      - text: Consume {units} units for customer {external_customer_id} on product {product_id}, key {idem}.
        slots:
          units: requestBody.units
          external_customer_id: requestBody.external_customer_id
          product_id: requestBody.product_id
          idem: header.Idempotency-Key
      - text: Deduct {units} units from wallet {wallet}'s entitlement, key {idem}.
        slots:
          units: requestBody.units
          wallet: requestBody.wallet
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/entitlements/{entitlement_id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get an access entitlement
      effect: read
      questions:
      - Can I look up one entitlement by its ID?
      - What are the details and remaining usage of an entitlement?
      instructions:
      - text: Get entitlement {entitlement_id}.
        slots:
          entitlement_id: path.entitlement_id
      - text: Show details of entitlement {entitlement_id}.
        slots:
          entitlement_id: path.entitlement_id
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/billing/entitlement'].get
  update:
    x-apievangelist-phrasing:
      intent: Get my Hilt Pay API plan entitlement
      effect: read
      questions:
      - Which Hilt Pay API plan am I entitled to right now?
      - When does my current API plan entitlement expire?
      instructions:
      - text: Show my current Hilt Pay API billing entitlement.
      - text: Check which API plan I'm entitled to.
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/billing/checkout/stripe'].post
  update:
    x-apievangelist-phrasing:
      intent: Use the retired API subscription checkout
      effect: write
      questions:
      - Is the old Stripe checkout for Hilt Pay API subscriptions still available?
      - What happens if I call the retired API plan card checkout?
      instructions:
      - text: Call the retired Hilt Pay API Stripe checkout for plan {plan} with {success_url} and {cancel_url}.
        slots:
          plan: requestBody.plan
          success_url: requestBody.success_url
          cancel_url: requestBody.cancel_url
      - text: Try the legacy API-plan card checkout for {plan}, returning to {success_url} or {cancel_url}.
        slots:
          plan: requestBody.plan
          success_url: requestBody.success_url
          cancel_url: requestBody.cancel_url
      method: generated
      generated: '2026-09-26'
- target: $.paths['/v1/access/webhooks'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a Hilt Pay API webhook endpoint
      effect: write
      questions:
      - Can I get webhooks for access payments and entitlements?
      - How do I scope a Hilt Pay API webhook to certain access products?
      instructions:
      - text: Create a Hilt Pay API webhook {label} at {url}, key {idem}.
        slots:
          label: requestBody.label
          url: requestBody.url
          idem: header.Idempotency-Key
      - text: Add an access webhook {label} to {url} for events {subscribed_events}, key {idem}.
        slots:
          label: requestBody.label
          url: requestBody.url
          subscribed_events: requestBody.subscribed_events
          idem: header.Idempotency-Key
      method: generated
      generated: '2026-09-26'