Customer_id not connected to some payments

We have had a few occurrences where the customer_id is not being added to the square payments, making it difficult for our team send the receipt to our customers.

Looking at the API logs I can see that we are indeed sending the customer_id in the body of the create payments call.

What are the payment_ids of the payments that don’t have the customer_id? :slightly_smiling_face:

Here are the ones that were provided by my ops team

I spot checked 8 of the payments and they all have a customer_id when calling GetPayment. Do you have an example response that doesn’t include the ID? :slightly_smiling_face:

That is very interesting. Let me follow up and come back to you on this.

They said they noticed a delay after making payments in the past. Is there usually a delay when making a payment for the customer id to show up? And about how long is that delay?

With card on file payments there shouldn’t be a delay cause the customer_id was passed in on the initial request. :slightly_smiling_face:

Thanks for your help. My ops team says they see the customer_id now. Should we close this and reopen if they have the issue again?

Great, glad to hear they see it now. :slightly_smiling_face:

@reyestia Hi there! I’ve got accounts connected and have figured out how to do a transaction immediately. However, I need our sellers to approve a transaction before it is processed, so either the authorization needs to be held, or I need to somehow save the Card ID from the token. Which is the best approach? And how do you do each? I’m not sure what format the entire card id of a token would be in to save it as data, or if that’s even possible. There is an authorization true/false option in payments but I’m not sure how to call on that later.

How long is the authorization period? If it’s more then 7 days you’ll need to store the card on file then charge it. Currently the longest we can authorize a payment is 7 days. :slightly_smiling_face:

With respect to saving the card for a later transaction (or two), you’d need to use the supplied token to save a card ID. The steps in rough summary are:

  • get customer to submit a card token and providing their details (name, phone, address etc)
  • create a Square customer using Square API CreateCustomer call
  • save a card using Square API call CreateCard and the token from the customer
  • when ready, use the saved card token and the API call CreatePayment to charge the card

The whole process, including charging the card, is beautifully documented in complete detail here:

It might be good to do a pre-auth as well, not sure about the importance of that within your legal constraints, but it does allow you to verify the card more completely and remind the customer that your payment is coming up. It also reserves funds, which may be problematic if it’s a whole week away. Either way my understanding is that you’d need to communicate clearly with the customer as to what was happening (card is being saved, amount, pre-auth if done, emailing them re this as well, email when card charged and potentially before the card charge). This is partly because some places require this, partly to avoid misunderstandings/chargebacks.

Feel free to let me know if I’ve got any of this wrong, not sure where one would go to read what the requirements are in different legal jurisdictions.