---
title: "Inspect one sandbox service booking payment status"
method: GET
path: "/services/bookings/{id}/payment-status"
tags: ["Service provider payments"]
---

# Inspect one sandbox service booking payment status

`GET /services/bookings/{id}/payment-status`

## Request

- Base URL: `https://platform-api.homejourney.sg/v1`
- URL: `https://platform-api.homejourney.sg/v1/services/bookings/{id}/payment-status`
- Auth: HTTP bearer

Returns one sandbox-only, redacted service booking payment-status record when the authenticated automation client has `services.bookings.read`. External URL: `/v1/services/bookings/{id}/payment-status`. Current Next.js implementation path: `/api/platform/v1/services/bookings/[id]/payment-status`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP payment-status inspection may call this sandbox route, while live payment identity, payment provider metadata, raw Stripe data, card details, customer PII, internal fraud signals, and payout execution remain deferred.

## Path parameters

- `id` string, required

## Headers

- `X-Correlation-Id` string

## Response `200`

One sandbox service booking payment status.

- ServiceBookingPaymentStatusResponse
  - `payment_status` object, required: Sandbox booking payment status backed by booking, transaction, refund, and payout ledger references. Customer PII, raw card data, Stripe secrets, hidden gateway metadata, internal fraud signals, and raw processor payloads are not returned.
    - `booking_id` string, required
    - `provider_id` string, required
    - `provider_name` string, required
    - `service_type` string, required
    - `booking_status` 'completed' | 'confirmed' | 'pending_payment', required
    - `scheduled_date` string, date, required
    - `currency` 'SGD', required
    - `payment` object, required
      - `status` 'paid' | 'failed' | 'partially_refunded' | 'disputed', required
      - `method_type` 'card' | 'points_wallet', required
      - `invoice_status` 'paid' | 'open', required
      - `refund_status` 'none' | 'partial_succeeded' | 'manual_required', required
      - `refund_reference` string, nullable, required
      - `amount_breakdown` object, required
        - `gross_booking_amount_cents` integer, required
        - `platform_fee_cents` integer, required
        - `provider_payable_cents` integer, required
        - `customer_paid_cents` integer, required
        - `refunded_cents` integer, required
        - `reversal_cents` integer, required
        - `outstanding_cents` integer, required
        - `wallet_paid_cents` integer, required
        - `points_redeemed_cents` integer, required
      - `payout_eligibility` object, required
        - `status` 'included_in_payout' | 'ready_for_payout' | 'held' | 'not_eligible' | 'reversed', required
        - `payout_id` string, nullable, required
        - `settlement_eta` string, date, nullable, required
        - `reason` 'awaiting_provider_completion' | 'payment_failed' | 'partial_refund_before_payout' | 'chargeback_like_reversal' | 'null', nullable, required
    - `accounting_reference` string, required
  - `ledger_sources` object, required
    - `bookings_table` 'services_bookings', required
    - `transactions_table` 'services_transactions', required
    - `refunds_table` 'services_booking_refunds', required
    - `payouts_table` 'services_payouts', required
    - `payout_batch_source` 'services_payouts.id', required
    - `client_side_calculation_used` false, required
    - `fee_schedule_id` 'fee_schedule_transaction_only_2026_06', required
    - `pricing_model` 'transaction_only', required
    - `platform_access_fee_basis_points` 0, required
    - `transaction_fee_rates` object, required
      - `domestic_card` object, required
        - `basis_points` 430, required
        - `fixed_fee_cents` 70, required
      - `paynow` object, required
        - `basis_points` 170, required
        - `fixed_fee_cents` 10, required
    - `marketplace_commission_basis_points` 0, required
    - `standard_payout_fee_cents` 0, required
    - `standard_payout_timing` 'T+30_calendar_days_after_payable_accrual', required
    - `redaction_version` 'service_booking_payment_status.v1', required
  - `public_safety` object, required
    - `customer_pii_returned` false, required
    - `card_details_returned` false, required
    - `card_fingerprint_returned` false, required
    - `stripe_secret_returned` false, required
    - `stripe_payment_intent_returned` false, required
    - `stripe_customer_id_returned` false, required
    - `bank_account_returned` false, required
    - `hidden_gateway_metadata_returned` false, required
    - `private_customer_notes_returned` false, required
    - `internal_fraud_signals_returned` false, required
    - `raw_processor_payload_returned` false, required
    - `service_role_identifier_returned` false, required
  - `authorization` Authorization, required (unresolved $ref)
  - `principal` Principal, required (unresolved $ref)
  - `livemode` false, 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)
