#30292·fastlane

[spaceship][produce] Merchant IDs have no macOS endpoint, so `mac: true` cannot work

Author: lacostejCreated Sep 29, 2026Updated Sep 29, 2026

Spaceship::Portal merchant calls take mac: and switch the path to account/mac/identifiers/…: merchants(mac:), create_merchant!(…, mac:) and delete_merchant!(…, mac:). The Developer Portal has no such endpoint. Listing merchants with an Apple ID:

POST account/ios/identifiers/listOMCs.action -> 200
POST account/mac/identifiers/listOMCs.action -> 404
  resultCode 1003, "Invalid request, Service mapping to the requested URL is not available."

Create and delete use the same mac prefix; they were not called, since they write. Website pushes, by contrast, answer on both paths.

produce merchant passes mac: true when the platform is mac (produce/lib/produce/merchant.rb), both to look merchants up and to create them.

Merchant IDs are Apple Pay identifiers and are not tied to a platform, so the mac: option can likely go, with the ios path always used. Related: #30237 (fixing #30236) made Merchant remember the mac: it was fetched with, so that delete! uses the same path; for merchants, that path does not exist. The official App Store Connect API also has merchant IDs (/v1/merchantIds), which spaceship does not use yet.