What customer information are automatically stored in the seller's customer list when a customer makes a payment?

May I ask you some questions regarding customer information saved in the store’s customer list when the customer makes a payment?

  1. When a new customer (not saved in the store’s customer list yet) makes a payment, what customer information will be saved in the customer list as a default even if the customer do not choose to join the loyalty program (or not provide the phone number or email address)?
  • Is the customer ID automatically created for him/her?
  • Is the card info (e.g., card number, expiration date) automatically saved with that customer ID?
  • Is the full name associated with the card info also saved with that customer ID?
  • How about phone number and email address? Are these two information only saved in the customer’s ID when they join the loyalty program?
  1. When an existing customer (saved in the store’s customer list already) makes a payment, how does Square server identify the customer?
  • How does Square know if he is the customer that does (or doesn’t) exist in the customer list?
  • How does it know his customer ID? Is it based on the card info? (matching the card number or full name with any existing card in the customer list).

If you could answer these questions, it will be super helpful for us to make a partner app for Square. Thank you!

Instant profiles are customer profiles that are automatically created following a payment. The creation_source attribute of the Customer object that represents an instant profile is set to INSTANT_PROFILE.

If a customer’s name is collected from a payment card and a matching profile does not already exist within your directory, Square creates an instant profile. Future purchases made with the same card update the profile history with new payment details and other activities for your business.

While instant profiles can be merged with manually created customer profiles in the Seller Dashboard, merging does not retroactively link completed transactions to the newly created profile (that is, the customer_id field remains unchanged). To track merged customer profiles, subscribe to the customer.created webhook event.

The information collected for an instant profile is basically the name on the card. Any other information would need to be collected manually and the card isn’t automatically saved on file.

For the loyalty program if only the phone number is collected then that’s the information associated to the customer profile. :slightly_smiling_face:

1 Like

Thank you so much for this detailed explanation. May I ask you some follow-up questions, tho?

  1. So, “the full name on card” is the only information saved automatically in the instant profile, am I correct?
  2. Then, what happens if there are two people with the same full name on card by any chance? Does Square just recognizes them as an identical customer, and their purchases/orders would be logged in a same customer ID? Or are there any other identifier saved in the instant profile to tell the people with same full name?

Thank you!!

Yes, the name on the card is what is saved.

If there are two customers with the same name Square identifies them differently cause the card they used is different. :slightly_smiling_face:

1 Like

But, how does Square know that they are different customers if the two people have the same name? Because you said Square only saves full name on card, so there are no other identifier from the card to tell the difference between the two cards?

We only save and expose the name of the card holder in the customer profile. The payment that the customer made has additional unique information that’s used to identify a unique individual. :slightly_smiling_face:

1 Like

I see. And I guess that information is not open to API users (only available to Square internally)?
We are trying to develop an app that can tell if our users made a payment at Square stores, so I am wondering if that “additional unique information” is something that we can call using some of your API calls.

No, you can get the payments associated to a customers with the Payments API. The API response will have unique information about the payment. This is one thing we use to dedupe customer records if they have the same name. If the payment card is different it is then treated as a new customer record. :slightly_smiling_face:

1 Like

Oh, okay… and is this “additional unique information” available from the Payments API also automatically recorded? I am just wondering if this additional card information is just automatically saved in Square’s server whenever a customer makes a payment (regardless of whether that customer has their card on file). So it can be called for any consumers who paid at that store (not just for those who put their cards on file).

Yes, when a payment is made regardless if it is a card on file payment or a card payment the information is logged as a payment that’s returned by the Payments API. :slightly_smiling_face:

1 Like

Thank you so much. May I ask you just 1 more question? I sincerely appreciate all your helpful inputs. :slight_smile: While we were having this chat, I was too curious to just wait for your response, and just tried to make a payment by myself in my own Square seller website. But, what I figured out is that I am “required” to provide email and phone number when I pay online. Is this always the case for customers when it comes to an online payment? Or is it because of some of the settings that I did not change in my website?

Are you using one of our hosted pages? If so then yes the information is required. If you use the Web Payments SDK then only card information is required to complete a payment. :slightly_smiling_face:

1 Like

Continuing the discussion from What customer information are automatically stored in the seller's customer list when a customer makes a payment?:

Have an issue with this set up. you all automatically saved our payment info while checking out as a guest on a food service website.

No input of ours was asked about saving our information nor do we have an account with square to go and remove that information.

It has been my personal experience within the last 4 years anytime our information was hacked and stolen it came from someones database where they had our information stolen through some sort of breach while im sure you have all the beat firewalls and whatnot and yada yada, we want our information removed and deleted.

how do we go about doing this when we never had an account with you to begin with?

For this request you’ll want to reach out to our Customer Success team. They’ll be able to assist with removing your buyer data from seller accounts. This community is reserved for our developer related issues with our developer tools. :slightly_smiling_face:

@Bryan-Square I stumbled upon this conversation when trying to find out the difference between instant profiles being created and the premium feature of a customer directory. This thread helped but I have a few follow-up questions. If the seller doesnt have a paid plan which comes with the customer directory feature, are instant profiles still created? Are instant profiles also created for Apple Pay/Google pay tap-to-pay? And can a developer app manually create a profile that includes the email address and make it available to the seller in their Square account without having the paid customer directory plan?

There isn’t any paid plans required to get instant profiles with our APIs and every Square account has a customer directory available. :slightly_smiling_face: