How to read cardholder's name from card using Square Terminal?


I am in the processing of integrating Square Terminal with a custom Point of Sale(POS) software for hospitality. In hospitality, it’s often common that the server creates a “tab” for the customer using the name on the customer’s credit card. Rather than having the server manually type in the name on the credit card on the POS, I want him/her to be able to use the Square Terminal to capture the name and create the tab without actually processing any payments. Unless I missed it, I could not find this in Terminal’s API. Thanks in advance.

Hi @scarlet welcome to the forums!

While technically it is possible that we can retrieve the customer’s name from the card, it’s typically something we cannot guarantee. Furthermore, I think for the most part we can only retrieve the info for swipes and inserts, but not contactless taps, but even with that said, there’s still no guarantee that the information will be made available depending on the type of card and depending on how the customer set it up, so I would not recommend using this as a method to source the customer’s name unfortunately.

Thanks @sjosey , i appreciate the response. I understand that we will not be able to capture the name 100% of the time, we have the same issue with the current setup using a magnetic stripe reader.
But even if we are able to get it 75% of the time, that would be really much more efficient than manually keying the customer’s name all the time which will quickly become cumbersome for the server during peak hours.

I would really appreciate if you have some documentation to point me in the right direction. In the current implementation the app captures the event of card swipe on the mag stripe reader connected via usb. When reading through terminal documents, i coudlnt find any info on terminal drivers for Windows. Thanks again!

1 Like

There’s a lot of factors at play so I’m not sure how often it will work (if it will even be 75% of the time). If it does work, basically a thing called an instant profile will be created on your account and attached to the payment. Thus, when you retrieve the payment via the Payments API, there will be a customer_id attached to it (there’s also a possibility of the customer_id instead being created on the Order object, which the Payment will have the order_id as well, so you probably want to check both places), and if you retrieve the customer there may be a name on the profile.

1 Like