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

# List read-only invoice delivery reconciliation gates

`GET /providers/current/invoice-delivery-reconciliation`

## Request

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

Returns invoice delivery reconciliation gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-delivery-reconciliation`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-delivery-reconciliation`. This read-only route does not require `Idempotency-Key`; it exposes delivery channel policy, draft-only destination metadata, missing receipt/acknowledgement/audit prerequisites, blocked invoice 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, raw payment payloads, delivery receipt payloads, or recipient acknowledgement payloads, sends invoices, records delivery receipts, collects payments, enforces quota, suspends credentials, or calls external finance providers.

## Headers

- `X-Correlation-Id` string

## Response `200`

Read-only invoice delivery reconciliation gates.

- InvoiceDeliveryReconciliationResponse
  - `invoice_delivery_reconciliation` InvoiceDeliveryReconciliationItem[], 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
    - `invoice_delivery_mode` 'draft_only', required
    - `delivery_channel` 'operator_review_queue', required
    - `delivery_destination` string, email, required
    - `reconciliation_decision` 'blocked_until_delivery_receipt', required
    - `reconciliation_state` 'manual_reconciliation_required', required
    - `required_scope` 'platform.billing_owner_visibility.read', required
    - `satisfied_prerequisites` string[], required
    - `missing_prerequisites` string[], required
    - `delivery_reconciliation_ready` false, required
    - `delivery_receipt_recorded` false, required
    - `recipient_acknowledgement_recorded` false, required
    - `invoice_external_send_allowed` false, required
    - `invoice_delivery_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` InvoiceDeliveryReconciliationAggregate, 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_delivery_reconciliation_contract` 'invoice_delivery_reconciliation_blocked_v1', required
    - `reconciliation_gates_declared` integer, required
    - `delivery_reconciliation_ready` integer, required
    - `delivery_receipts_recorded` integer, required
    - `recipient_acknowledgements_recorded` integer, required
    - `invoice_delivery_side_effects_blocked` integer, required
    - `finance_provider_calls_blocked` integer, required
  - `authorization` InvoiceDeliveryReconciliationAuthorization, 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_delivery_reconciliation_contract_only', required
    - `table_access` 'no_usage_event_or_partner_billing_table_reads', required
    - `mutation_access` 'billing_writes_deferred', required
  - `public_safety` InvoiceDeliveryReconciliationPublicSafety, 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
    - `delivery_receipt_payload_visible` false, required
    - `recipient_acknowledgement_payload_visible` false, required
    - `invoice_external_send_allowed` false, required
    - `invoice_delivery_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)
