Can square_card_id from a third-party card import mapping file be used as card_id in CreateSubscription?

Hi,

We are planning to migrate existing subscribers from Stripe to Square.

Square Support in Japan confirmed the following:

  • Third-party card data can be imported from Stripe to Square.
  • After the card import, the seller can create new Square subscriptions using the imported cards.
  • Buyers do not need to go through Square Checkout, invoice payment links, or any other manual payment flow.
  • Charges to imported saved cards are considered seller-initiated recurring charges, so 3DS is not required, although issuer authorization declines may still occur.

According to the Square Help Center article for third-party card import, the post-import mapping file includes:
external_card_id, square_card_id, external_customer_id, square_customer_id.

According to the Cards API documentation, card-on-file payments can be configured using card_id with the Subscriptions API.
According to the CreateSubscription API reference, card_id is the ID of the subscriber’s card to charge.

My question is:

Can the square_card_id provided in the post-import mapping file from a third-party card import be used directly as the card_id in the CreateSubscription API request?

Example intended flow:

  1. Import saved cards from Stripe to Square.
  2. Receive mapping file with square_customer_id and square_card_id.
  3. Create Square subscriptions via API using:
    • customer_id = square_customer_id
    • card_id = square_card_id
    • plan_variation_id = our Square subscription plan variation
    • start_date = the subscriber’s next billing date from Stripe
  4. Cancel the corresponding Stripe subscription after the Square subscription is created.

We would also like to confirm:

  • Are there any restrictions for imported card IDs when used with CreateSubscription?
  • Are there any Japan-specific restrictions for this flow?
  • If card_id is provided and the card charge succeeds, will the buyer avoid receiving an invoice payment link?
  • Is start_date the correct field to align the first Square billing date with the customer’s next Stripe renewal date?

Thank you.

  1. Yes. Once the card import completes, square_card_id is a persisted Square card ID, and it can be passed directly as card_id in CreateSubscription.
  2. It must be the final Square card ID; The card must be enabled/active; The card must belong to the same customer_id you’re passing in the request.
  3. No. The standard card-on-file and Subscriptions API behavior applies the same way regardless of region)
  4. The buyer won’t be prompted to pay via an invoice link — the card on file is charged automatically. They will still receive an email receipt for the charge. The “pay via invoice” fallback only happens if no valid card_id is provided.
  5. Yes, start_date is the correct field for that.