Checking access…

Skip to main content
Version: v2

V2 API Environment Availability

This page describes which V2 endpoints are available in each CCG environment and what status codes to expect when an operation is not available.

Merchant-safe availability statement

Last validated: 2026-08-26
Accountable owners: CCG Product and API owners

V2 is available in production. Availability is operation-specific. Before migration, confirm that every operation in scope is production-ready and enabled for the merchant. Deferred or stubbed operations must not be used.


Environment Access Matrix​

EnvironmentV2 Endpoints AvailableBehaviour
devβœ… YesAll implemented endpoints accessible; stubs return 501
testβœ… YesAll implemented endpoints accessible; stubs return 501
regβœ… YesAll implemented endpoints accessible; stubs return 501
perfβœ… YesAll implemented endpoints accessible; stubs return 501
stageConfirm per operationStage readiness is validated separately; do not infer it from production availability
prodβœ… Operation-specificSupported operations are available when enabled for the merchant; deferred and unconfirmed operations must not be used
Confirm the complete migration scope

Production availability for one V2 operation does not establish availability for another. Confirm operation readiness, merchant enablement, credentials, routing, and rollback ownership before sending production traffic.


Response Codes​

503 β€” Service Unavailable​

An unavailable route or service can return 503 Service Unavailable:

{
"status": 503,
"title": "V2_ENDPOINT_UNAVAILABLE",
"detail": "The requested service is currently unavailable."
}

Do not interpret a 503 from one operation as a blanket status for all V2 routes. Confirm the affected operation and environment with CCG support.

Endpoint Status Reference​

Payment Service (wallet-payment-service)​

EndpointMethodStatusNotes
/v2/paymentsPOSTβœ… ImplementedCreate split-tender payment
/v2/paymentsGETβœ… ImplementedGet payment by merchantTransactionId
/v2/payments/{id}GETβœ… ImplementedGet payment by paymentId
/v2/payments/{id}/capturePATCHβœ… ImplementedCapture authorized payment
/v2/payments/{id}/cancelPATCHβœ… ImplementedCancel eligible payment
/v2/refundsPOSTβœ… ImplementedCreate refund
/v2/refunds/{refundId}GETβœ… ImplementedGet refund status

Auth Service (wallet-auth-service)​

EndpointMethodStatusNotes
/v2/sessionsPOSTβœ… ImplementedCreate checkout session
/v2/sessions/{id}GETβœ… ImplementedGet session status
/v2/checkout-sessions/{id}GETβœ… ImplementedProduction-ready when enabled for the merchant; validate response handling
/v2/checkout-sessions/{id}/cancelPATCHβœ… ImplementedProduction-ready when enabled for the merchant; validate eligible session state
/v2/checkout-sessions/{id}/child-sessionsPOSTβœ… ImplementedProduction-ready when enabled for the merchant; validate parent-session state and child-session rules
/v2/checkout-sessions/{id}PATCHβœ… ImplementedProduction-ready when enabled for the merchant; validate update operation and response handling

How It Works​

Routing and operation readiness are evaluated independently:

Incoming /v2/ request
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Layer 1: Istio VirtualService (gateway) β”‚
β”‚ Match public path and route to the owning service β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Layer 2: Merchant and operation readiness β”‚
β”‚ Confirm environment availability and merchant enablement β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ (enabled operations)
β–Ό
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Layer 3: V2NotImplementedFilter β”‚
β”‚ Handler annotated @V2NotImplemented β†’ 501 JSON response β”‚
β”‚ Handler not annotated β†’ pass through β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚ (implemented endpoints only)
β–Ό
Controller handler executes normally

Production routing does not override operation-level controls. A route can exist while its operation remains deferred or unavailable to a merchant.


Infrastructure Routing​

V2 public paths are routed through the CCG API v2 VirtualService (ccg-api-v2). All CCG V2 endpoints are exposed via Istio VirtualService β€” there is no direct HCP ingress for any of these paths. The Istio IngressGateway (istio-ingressgateway) sits at the cluster edge and forwards traffic to the appropriate service via the VirtualService route rules.

MethodPublic pathRewrites toServiceRouting
POST/payments/v2/paymentspayment-serviceVirtual (Istio)
GET/payments/v2/paymentspayment-serviceVirtual (Istio)
POST/token/payments/v2/paymentspayment-service (PCI)Virtual (Istio)
PATCH/payments/{id}/cancel/v2/payments/{id}/cancelpayment-serviceVirtual (Istio)
PATCH/payments/{id}/capture/v2/payments/{id}/capturepayment-serviceVirtual (Istio)
POST/refunds/v2/refundspayment-serviceVirtual (Istio)
GET/refunds/{refundId}/v2/refunds/{refundId}payment-serviceVirtual (Istio)
POST/sessions/v2/sessionsauth-serviceVirtual (Istio)
GET/sessions/{sessionId}/v2/sessions/{sessionId}auth-serviceVirtual (Istio)
GET/checkout-sessions/{id}/v2/checkout-sessions/{id}auth-serviceVirtual (Istio)
PATCH/checkout-sessions/{id}/cancel/v2/checkout-sessions/{id}/cancelauth-serviceVirtual (Istio)
POST/checkout-sessions/{id}/child-sessions/v2/checkout-sessions/{id}/child-sessionsauth-serviceVirtual (Istio)
PATCH/checkout-sessions/{id}/v2/checkout-sessions/{id}auth-serviceVirtual (Istio)

Production routes are forwarded to the owning service for operations that are production-ready and enabled for the merchant. Stage availability must be confirmed independently. The presence of a route does not make a deferred operation available.