---
id: ADR-COM-FUL-015
title: Delegate carrier calls and credentials to the Integration Platform
product_area: commerce
module: fulfillment
revision: 1
status: proposed
design_intent: confirmed
source_sha:
  services-commerce: c8b66a98e2490617aec38ba5c8165dd9bd0a8f9b
decision: >-
  Use the workspace’s Integration Platform connection for UPS and keep only
  connection references in Commerce.
constrains:
  - DOM-COM-FUL-004
  - SVC-COM-FUL-shipping
  - WF-COM-FUL-011
origin: >-
  Andrew 2026-10-18 21:10 UTC, UPS through the Integration Platform ("move it
  now"): services-commerce:docs/migrations/shipping/README.md#D-P8S-15,
  #D-P8S-16
alternatives:
  - option: Keep carrier credentials and direct UPS calls in Commerce.
    why_not: >-
      The cited product decision places carrier invocation and secrets with the
      Integration Platform.
  - option: Provision a Platform binding for each carrier account.
    why_not: >-
      The invocation carries a connection reference and does not use a
      provisioned account binding.
consequences:
  - >-
    Missing carrier gateway configuration returns unavailability rather than
    calling UPS.
  - Configuration can name a carrier whose first operation is unsupported.
  - Local fixture evidence does not establish live UPS behavior.
supersedes: []
evidence:
  - >-
    services-commerce at c8b66a98:
    modules/shipping/services/carriers/ups/ups-carrier.ts,
    commerce-carrier-port.ts; services/persistence/carrier-accounts.ts;
    aws/cdk/commerce.function-environment.ts:givePlatformIntegrationsInvoke.
---

# Delegate carrier calls and credentials to the Integration Platform

## Context

Carrier services need credentials without placing secrets in shipping records.

## Decision

Use the workspace’s Integration Platform connection for UPS and keep only connection references in Commerce.

## Alternatives Considered

Keep carrier credentials and direct UPS calls in Commerce. The cited product decision places carrier invocation and secrets with the Integration Platform.

Provision a Platform binding for each carrier account. The invocation carries a connection reference and does not use a provisioned account binding.

## Consequences

Absent connections or grants refuse calls as unavailable. The local fixture does not prove live carrier integration.
