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:
- Import saved cards from Stripe to Square.
- Receive mapping file with square_customer_id and square_card_id.
- 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
- 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.