Loyalty Promotion via API doesn't work with no promotion end date

I’m unable to successfully claim a Loyalty promotion via API when the promotion has no end date. I’ve confirmed that using Square POS directly claims the promotion, but any attempts via API don’t have the promotion. This appears to be a bug, or am I doing something wrong?

He’s an order ID that should be valid for claiming a Loyalty promotion (as confirmed with a Square POS transaction with the same line items): 2UAixyxKPZuBVv8ipidRyumIdJGZY.

Calling the Calculate loyalty points endpoint shows zero promotion points.

Calling the Accumulate loyalty points endpoint only shows a single event for the base program.

However, adding an end date to a promotion successfully claims via API calls. See order ID ywdd7uL4tCCi7ZaXg8HJ9DhGFw5YY.

I’m checking with the team on this. :slightly_smiling_face:

Update - after more testing, this ended up being an error on my part… I didn’t realize a Loyalty Promotion can only be triggered once per day per customer.

In almost all of my tests, I was consuming the promotion on Square POS first, which caused my subsequent API attempts to show no valid promotion available. It just so happened that the one time I added an end date I called the API first and successfully claimed the promotion.

Glad to hear you figured it out. :slightly_smiling_face: