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

# List read-only invoice refund dispute gates

`GET /providers/current/invoice-refund-dispute-gates`

## Request

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

Returns invoice refund/dispute gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-refund-dispute-gates`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-refund-dispute-gates`. This read-only route does not require `Idempotency-Key`; it exposes payment-collection completion, refund-policy, dispute-policy, processor-refund contract, chargeback-policy, support-owner, customer-notice, and audit prerequisites; blocked refund, dispute, chargeback, provider-call, payment, quota, and credential side effects; hidden payment-method, refund-receipt, and dispute-evidence payload posture; and next operator actions only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads, raw payment payloads, payment method payloads, refund receipt payloads, dispute evidence payloads, chargeback payloads, or processor payloads, sends invoices, records delivery receipts, collects payments, mutates refunds or disputes, enforces quota, suspends credentials, or calls external finance providers.

## Headers

- `X-Correlation-Id` string

## Response `200`

Read-only invoice refund dispute gates.

- InvoiceRefundDisputeGatesResponse
  - `invoice_refund_dispute_gates` InvoiceRefundDisputeGate[], 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
    - `payment_collection_mode` 'payment_collection_blocked', required
    - `refund_mode` 'manual_refund_review_blocked', required
    - `dispute_mode` 'support_owner_review_blocked', required
    - `refund_decision` 'blocked_until_payment_collection_and_refund_policy', required
    - `dispute_decision` 'blocked_until_dispute_policy_and_evidence_contract', required
    - `required_scope` 'platform.billing_owner_visibility.read', required
    - `satisfied_prerequisites` string[], required
    - `missing_prerequisites` string[], required
    - `payment_collection_ready` false, required
    - `refund_workflow_ready` false, required
    - `dispute_workflow_ready` false, required
    - `refund_mutation_allowed` false, required
    - `dispute_mutation_allowed` false, required
    - `chargeback_mutation_allowed` false, required
    - `refund_provider_call_allowed` false, required
    - `dispute_provider_call_allowed` false, required
    - `chargeback_provider_call_allowed` false, required
    - `payment_method_payload_visible` false, required
    - `refund_receipt_payload_visible` false, required
    - `dispute_evidence_payload_visible` false, required
    - `customer_notice_ready` false, required
    - `support_owner_review_ready` false, required
    - `invoice_external_send_allowed` false, required
    - `payment_collection_allowed` false, required
    - `finance_provider_call_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` InvoiceRefundDisputeGatesAggregate, 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_refund_dispute_contract` 'invoice_refund_dispute_blocked_v1', required
    - `refund_dispute_gates_declared` integer, required
    - `refund_workflows_ready` integer, required
    - `dispute_workflows_ready` integer, required
    - `refund_dispute_mutations_blocked` integer, required
    - `refund_provider_calls_blocked` integer, required
    - `dispute_provider_calls_blocked` integer, required
    - `chargeback_provider_calls_blocked` integer, required
    - `payment_method_payloads_visible` integer, required
    - `refund_receipt_payloads_visible` integer, required
    - `dispute_evidence_payloads_visible` integer, required
    - `support_escalations_required` integer, required
    - `finance_provider_calls_blocked` integer, required
  - `authorization` InvoiceRefundDisputeGatesAuthorization, 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_refund_dispute_gate_contract_only', required
    - `table_access` 'no_usage_event_or_partner_billing_table_reads', required
    - `mutation_access` 'billing_writes_deferred', required
  - `public_safety` InvoiceRefundDisputeGatesPublicSafety, 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
    - `payment_method_payload_visible` false, required
    - `refund_receipt_payload_visible` false, required
    - `dispute_evidence_payload_visible` false, required
    - `refund_provider_call_allowed` false, required
    - `dispute_provider_call_allowed` false, required
    - `chargeback_provider_call_allowed` false, required
    - `refund_mutation_allowed` false, required
    - `dispute_mutation_allowed` false, required
    - `chargeback_mutation_allowed` false, required
    - `refund_dispute_mutations_enabled` false, required
    - `invoice_external_send_allowed` false, required
    - `payment_collection_allowed` false, required
    - `finance_provider_call_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)
