iOS In-App Payments SDK returns invalid_application_id with matching Production Application ID

We are experiencing invalid_application_id during card nonce creation in the Square In-App Payments SDK on iOS.

Application: KOCH-WAYNE LIMO
Production Application ID: sq0idp-M2sNMfAllPikTyvG1jdxmw
iOS bundle ID: com.kochwaynelimo.app

SDK configuration

  • Square In-App Payments SDK for iOS
  • [email protected]
  • Embedded Square In-App Payments SDK version: 1.6.7
  • Production environment
  • TestFlight build on a real iPhone

Behavior

  1. Native Square card-entry screen opens successfully.
  2. A valid real credit card can be entered.
  3. When Save is tapped, Square displays:
    invalid_application_id
  4. No card nonce is returned to the application.
  5. Our backend is never called.

What we have verified

  • The Production Application ID in Square Developer Dashboard exactly matches the ID embedded in the TestFlight IPA.
  • There is no second or sandbox Square Application ID in the app.
  • The Application ID is set before starting the native card-entry flow.
  • Bundle ID is com.kochwaynelimo.app.
  • The app is using Square In-App Payments SDK, not Mobile Payments SDK.
  • Therefore the Mobile Payments SDK application-signature requirement does not apply.
  • Square API Logs show no KOCH backend payment request because the failure occurs during native card nonce creation.

Could Square please verify whether this Production application is enabled/valid for In-App Payments card nonce creation and investigate why the nonce service is returning invalid_application_id despite the Application ID matching the Developer Dashboard?

I can provide additional non-secret diagnostic details if needed.

Thank you for all the detail! invalid_application_id at nonce creation means the nonce service rejected the ID it received, which isn’t always the same as the ID you think you set. A few things worth checking, roughly in order of how often they turn out to be the cause:

  1. Verify the ID at runtime, not in config. Log the application ID immediately before you initialize the SDK and inspect the exact string, length included. If the value flows through a build-time env var, .env file, or native config, trailing whitespace, a newline, or silent truncation is a common culprit and it’s invisible in a side-by-side visual comparison against the dashboard.
  2. Confirm the environment matches the ID. A production sq0idp- ID must be used with the SDK in production mode. With react-native-square-in-app-payments, a lingering setSquareApplicationId call from a sandbox code path, or a debug initializer that still runs in your TestFlight build, will produce exactly this error.
  3. Check that the Square account is activated for payments. If the account behind the application hasn’t completed activation for card processing, application-level calls can be rejected before any payment is attempted, which matches what you’re seeing, since your backend is never reached and nothing appears in API Logs.

Hi Ashley did you get this resolved? I have a very similar case here: Production invalid_application_id with iOS In-App Payments SDK 1.6.7 and I’m struggling to get it resolved. Could I ask you to step in and assist please?