On back we have such flow:
CreateCustomerCardRequest cardRequest = new CreateCustomerCardRequest().cardNonce(cardNonce);
customersApi.createCustomerCard(customerId, cardRequest);
Customer customer = customersApi.retrieveCustomer(clientDetails.getCustomerId()).getCustomer();
ChargeRequest chargeRequest = new ChargeRequest()
// all set fields are required for charging via TransactionAPI
.customerId(customer.getId())
.customerCardId(customer.getCards().iterator().next().getId())
.billingAddress(clientDetails.getAddress().convertToSquareAddress())
.buyerEmailAddress(clientDetails.getEmail())
.idempotencyKey(idempotencyKey)
.amountMoney(preparePaymentAmount(clientAmount, request.getCurrency()))
.note(shorten(clientDetails.getDescription()));
The charge request fails with exception:
com.squareup.connect.ApiException: {"errors":[{"category":"INVALID_REQUEST_ERROR","code":"NOT_FOUND","detail":"Card on file `ccof:aVQ2nH9JALqLueJW3GB` for customer `TXSP1QJSFGTPV72CKAYR0SFXQR` not found.","field":"customer_card_id"}]}
Help please. It seams to be a very common flow.
We make such calls not for our account but for merchant accounts that give us access by OAuth.
This code worked well before 2020-10-22 00:00 UTC.
Square Community