Hi, we sometimes receive this error:
[{'code': 'BAD_REQUEST', 'detail': 'This account has not been enabled to take payments', 'category': 'INVALID_REQUEST_ERROR'}]
I would like to verify that the merchants we’re onboarding are ready to take payment with Square Terminals. I can’t find an appropriate attribute that will indicate that they are ready to take payments.
Is there such an attribute, or should we for e.g. check if bank account is configured?
I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:
Additional Documentation
Troubleshoot the Payments API
Payments Requirements
Merchant APIs
If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.
With the Locations API you can check the capabilities to see if CREDIT_CARD_PROCESSING
is available for the seller your onboarding. If CREDIT_CARD_PROCESSING
isn’t in the capabilities
then they’ll need to enable it in the Square Dashboard.
1 Like
This might help – you need request the specific permissions, ‘called scopes’, that your user requires when you initially construct the ‘login authorization’ link that you send to the client. This is the link that the client clicks on to take them back to the Square-hosted UI. The Leedz is a system that allows users to buy and sell – i.e. receive payments – so this is the login link with scopes:
authorize_url = (
sq_url + ‘/oauth2/authorize’
‘?client_id=’ + app_ID +
‘&scope=’ + “ORDERS_READ ORDERS_WRITE PAYMENTS_WRITE PAYMENTS_READ PAYMENTS_WRITE_ADDITIONAL_RECIPIENTS MERCHANT_PROFILE_READ” +
‘&session=’ + “false” +
‘&state=’ + state
)
Note the MERCHANT_PROFILE_READ – you will need this later to use the locations API to query about LocationID - and maybe other queries.
@Bryan-Square can you help me with this? This merchant has multiple terminals on the same account in different locations ans some locations terminals can process payments and some others have the issue like the screen below.
device_id: 401CS149B6004886
location_id: LJ0RRSBRD14MW
order_id: bj0l4tMs0FcvlymxTn3L122AvNJZY
{
"id": "LJ0RRSBRD14MW",
"capabilities": [
"CREDIT_CARD_PROCESSING",
"AUTOMATIC_TRANSFERS"
],
"status": "ACTIVE",
},
I’m not seeing any issues with that location. Did they create a device code specifically for that location?
Yes:
{
"device_codes": [
{
"id": "X16FJ5ZAZN29K",
[...]
"device_id": "401CS149B6004886",
"product_type": "TERMINAL_API",
"location_id": "LJ0RRSBRD14MW",
"created_at": "2024-08-09T12:40:10.000Z",
"status": "PAIRED",
"status_changed_at": "2024-08-09T12:40:36.000Z",
"paired_at": "2024-08-09T12:40:36.000Z"
}
]
}
Have they tried restarting the device?
We’ll ask the the merchant to execute a time honored industry standard trouble shooting procedure.
If it will work, I guess we lost half a day of few people chasing the problem, what we should do instead is: