What would cause a payment to be VOIDED?

I have a merchant who’s customer was paying on our app via Reader SDK which unexpectedly crashed and the order went to the customer’s bank account with a pending debit, but the transaction never actually showed in Square.

Looking at Square API logs for merchant ID 9DAW8W9S2H6QM, I can see a payment with ID nBzOgmISwZ35R8nB5vIcE5OwRwWZY made it through to the approved state, but when I ping the Get Payment endpoint I can see that the payment is now in a CANCELED status with card_details of VOIDED. Looks like it was voided 10 minutes after original creation.

What would cause this?

1 Like

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

We got similar issue on payment id pA6gjGiCrPbyYK9cfDS0Y1QJBKfZY on checkout gLGY4qdfj3cqO

The customer tried EMV then CONTACTLESS and failed. They where charged and and refunded. The payment went thorough on the with invoice payment RUuaNVg0RZJdzJpKvjsxMixgbedZY.

For the failed payment did the customer remove the card too soon? We have been seeing these authorized but not fully captured payments when from time to time when a customer removes the card too quickly. :slightly_smiling_face:

I do not think it was the issue. We were able to reproduce this on our own terminal and the problem seems to be related to the Order.

It works fine if we retry the same payload sans order_id from Api Explorer Create terminal checkout.

The terminal_checkout_id: RLmI3maQqDYqO failed with card_details.status: VOIDED when I called Create terminal checkout with order_id for a previously created order used in the invoice, but terminal_checkout_id: UCKMaDUsnykqO succeeded when order_id is ommited.

Looks like the order was published to an invoice first. Then the order_id for the published invoice was passed to a CreateTerminalCheckout. Once an order is associated to an invoice it can’t be paid for with the Terminal API. :slightly_smiling_face:

1 Like

It’s paragraf 22 situation.

I looks that once an order was payed with terminal checkout it cannot be associated with the invoice :frowning:

[{'code': 'BAD_REQUEST', 'detail': 'The order must be in the OPEN state to create an invoice', 'field': 'invoice.order_id', 'category': 'INVALID_REQUEST_ERROR'}]

And the order associated with the invoice cannot be payed with terminal checkout.

How do we create invoices to work with terminal checkout? Is there a guide on how to make terminal checkout work with the invoices?

PS. It’s a shame that it works fine in then sandbox :frowning:

Unfortunately, at this time the Terminal API doesn’t work with invoices. We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team. :slightly_smiling_face:

Can you make it not work on sandbox as well? It is unreliable like it is ATM. :person_facepalming:

We designed the integration based on what worked on sandbox and failed the production release. Now we have to redesign the integration :sob:

The questions still remain:

  1. Where is it documented?
  2. Did we miss something or it’s your tribal knowledge?
  3. What are the other differences beside those mentioned on Sandbox Limitations page?

We’re constantly working to improve our features based on feedback like this, so I’ll be sure to share your request to the API product team. :slightly_smiling_face: