---
title: "List read-only invoice send gates"
method: GET
path: "/providers/current/invoice-send-gates"
tags: ["Billing"]
---

# List read-only invoice send gates

`GET /providers/current/invoice-send-gates`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/providers/current/invoice-send-gates`
- Auth: HTTP bearer

Returns external invoice-send gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-send-gates`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-send-gates`. This read-only route does not require `Idempotency-Key`; it exposes finance-review prerequisites, dry-run invoice readiness, blocked delivery/payment/quota/credential side effects, and next operator actions only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads or raw payment payloads, sends invoices, collects payments, enforces quota, suspends credentials, or calls external finance providers.

## Headers

- `X-Correlation-Id` string

## Response `200`

Read-only external invoice-send gates.

- InvoiceSendGatesResponse
  - `invoice_send_gates` InvoiceSendGateItem[], required
    - `module_id` 'agent' | 'agency' | 'business' | 'mortgage' | 'legal' | 'developer' | 'renovation', required
    - `label` string, required
    - `workspace_root` string, required
    - `invoice_id` string, required
    - `billing_account_org_id` string, required
    - `billing_account_client_id` string, required
    - `billing_owner` string, required
    - `invoice_contact` string, email, required
    - `billing_period` string, required
    - `currency` string, required
    - `invoice_state` 'draft' | 'review_required' | 'approved' | 'issued' | 'paid' | 'partially_paid' | 'voided' | 'credited' | 'disputed' | 'uncollectible', required
    - `payment_terms` string, required
    - `invoice_delivery_mode` 'draft_only', required
    - `send_decision` 'blocked_until_finance_review', required
    - `send_review_state` 'manual_review_required', required
    - `required_scope` 'platform.billing_owner_visibility.read', required
    - `satisfied_prerequisites` string[], required
    - `missing_prerequisites` string[], required
    - `invoice_external_send_allowed` false, required
    - `invoice_send_side_effects_allowed` false, required
    - `finance_provider_call_allowed` false, required
    - `payment_collection_allowed` false, required
    - `quota_enforcement_allowed` false, required
    - `credential_suspension_allowed` false, required
    - `billing_write_mutations_enabled` false, required
    - `proof_command` string, required
    - `evidence_path` string, required
    - `blocker` string, required
    - `next_action` string, required
  - `summary` InvoiceSendGateAggregate, required
    - `total_verticals` integer, required
    - `plan_state_visible` integer, required
    - `billing_owner_visible` integer, required
    - `invoice_contact_visible` integer, required
    - `billing_owner_visibility_gates` integer, required
    - `partner_billing_table_reads_deferred` integer, required
    - `usage_events_present` integer, required
    - `customer_visible_usage_summaries` integer, required
    - `automatic_overage_enforcement_blocked` integer, required
    - `billing_owner_gate_side_effects_blocked` integer, required
    - `launch_ready_contracts` integer, required
    - `source_contract` 'vertical_billing_usage_contract', required
    - `invoice_send_gate_contract` 'external_invoice_send_blocked_v1', required
    - `invoice_send_gates_declared` integer, required
    - `invoice_send_gates_blocked` integer, required
    - `invoice_dry_runs_ready` integer, required
    - `finance_provider_calls_blocked` integer, required
    - `payment_collection_blocked` integer, required
    - `quota_enforcement_blocked` integer, required
    - `credential_suspension_blocked` integer, required
  - `authorization` InvoiceSendGatesAuthorization, required
    - `organization_id` string, uuid, required
    - `client_id` string, uuid, required
    - `api_key_id` string, uuid, required
    - `required_scope` 'platform.billing_owner_visibility.read', required
    - `granted_billing_scopes` PlatformScope[], required
    - `actor_model` 'api_key_automation_client', required
    - `data_access` 'invoice_send_gate_contract_only', required
    - `table_access` 'no_usage_event_or_partner_billing_table_reads', required
    - `mutation_access` 'billing_writes_deferred', required
  - `public_safety` InvoiceSendGatesPublicSafety, required
    - `usage_event_table_reads_allowed` false, required
    - `partner_billing_table_reads_allowed` false, required
    - `raw_usage_event_payload_visible` false, required
    - `raw_payment_payload_visible` false, required
    - `invoice_external_send_allowed` false, required
    - `invoice_send_side_effects_allowed` false, required
    - `finance_provider_call_allowed` false, required
    - `payment_collection_allowed` false, required
    - `quota_enforcement_allowed` false, required
    - `credential_suspension_allowed` false, required
    - `external_finance_calls` false, required
    - `billing_write_mutations_enabled` false, required
  - `principal` Principal, required (unresolved $ref)
  - `livemode` boolean, required
  - `request_id` string, required

## Other responses

- `400`: Request validation failed.
- `401`: Missing or invalid platform API key.
- `403`: Credential, environment, or scope is not allowed.
- `404`: Platform API feature or resource is not available.
- `429`: Rate limit exceeded.
- `500`: Unexpected platform API failure.

---

[API](https://skmtc.dev/homejourney/apis/homejourney-platform-api.md) · [All operations](https://skmtc.dev/homejourney/apis/homejourney-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/homejourney/apis/homejourney-platform-api/revisions/a2c6fe063db1?raw)
