Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Square payment gateway issues - Server Error 500 / Declined_Verification / Invalid Card Data / "Enter a valid card number" #6729

Closed
mrkylegp opened this issue Sep 27, 2021 · 20 comments

Comments

@mrkylegp
Copy link

mrkylegp commented Sep 27, 2021

What version of Invoice Ninja are you running? ie v4.5.25 / v5.0.30
v5.3.17-C59

What environment are you running?
Shared Hosting

Describe the bug
The Square payment gateway is still not working.
Upon attempting to pay via the client portal, after entering correct card details, the error "Enter a valid card number" is presented and the payment cannot proceed. This is the behaviour with sandbox credentials and regardless of test mode being true or false, invoice ninja continues to display the gateway as "in test mode". See issue #6681

Steps To Reproduce
Configure the Square payment gateway credentials.
Create an invoice.
Go to the client portal as that client and attempt to pay the invoice with credit card.
Enter a valid card number, expiry and security code then click pay now.

Screenshots
carderror

Additional context
I have tried with test mode true or false, it makes no difference.
I am testing with my sandbox API credentials from Square.

Production Credentials

If I try and use the production credentials, the field to enter the card details doesn't appear at all.
Tried:

  • Deleting the gateway and reconfiguring it with Production credentials.
  • PHP artisan optimize
  • Clear cache and refresh client portal, including log out and log in
  • Tried another browser.
    nocard
@mrkylegp mrkylegp changed the title Square payment gateway / client portal - "Enter a valid card number" even when card details are correct - Cannot pay Square payment gateway issues - "Enter a valid card number" with sandbox credentials or no credit card field displayed with production credentials Sep 27, 2021
@turbo124
Copy link
Member

When we get clarity on #6681 we can move onto this one :)

@mrkylegp
Copy link
Author

mrkylegp commented Sep 28, 2021

When we get clarity on #6681 we can move onto this one :)

No worries, have added a reply on #6681 with a new video. Issues with upgrades to 5.3.17 but not fresh installs. Please check.

@mrkylegp
Copy link
Author

mrkylegp commented Oct 1, 2021

@turbo124

I have entered my square Sandbox credentials for Square under the gateway settings and ticked test mode (now that its a tick box as per #6681

The credit card numbers field appears, I enter a valid card and click Pay now and it still reports "Enter a valid card number".
(If I try to use Sandbox credentials without test mode being ticked, the credit card numbers field doesn't appear. I assume that is expected?)

Is this not the correct usage of the Sandbox mode? Please explain the influence the "test mode" variable has under the gateway settings, or what I should be doing otherwise in order to test Square payments in a sandbox fashion before using my production credentials.

@turbo124
Copy link
Member

turbo124 commented Oct 2, 2021

Sandbox mode allows you to test your payment flow with test credentials and credit cards, the credit card box should appear in this mode, you may need to click on the radio button to show the credit card dialog (this may be a bug).

@mrkylegp
Copy link
Author

mrkylegp commented Oct 2, 2021

Sandbox mode allows you to test your payment flow with test credentials and credit cards, the credit card box should appear in this mode, you may need to click on the radio button to show the credit card dialog (this may be a bug).

@turbo124
So to clarify, Test mode in invoice ninja is Sandbox mode? and I should use the Sandbox credentials for testing provided from square?

Because this is what I've done, and the credit card box DOES appear but as per the issue reported, just says to "enter a valid card number" when clicking pay now. Card details are 100% correct and I've tried multiple cards. Pretty sure I tried production credentials without test mode ticked as well and got the same error. I was willing to pay myself to test this haha

@turbo124
Copy link
Member

turbo124 commented Oct 2, 2021

Your using these values, right?

https://developer.squareup.com/docs/testing/test-values

@mrkylegp
Copy link
Author

mrkylegp commented Oct 2, 2021

Your using these values, right?

https://developer.squareup.com/docs/testing/test-values

I wasn't actually. I guess that should of been fairly obvious. Sandbox environment, sandbox card. Oops.

Anyway, I went ahead and tested with a few different card numbers from the Square link you provided.

With the two different cards I got two different results.

Card 1:
Visa EU 4310 0000 0020 1019 CVV 111

Produced Payment failed email and this message:
payment failed

I believe this might be happening because its a card that utilises the verification number (123456 in the case of this testing card) and there is no dialogue that asks for a verification code in the client portal, so it fails with this error.

"When testing the SCA flow with one of the European Union test cards, the verification code simulates the SMS verification code sent to the buyer's mobile phone during an actual transaction."

Card 2:
Visa 4111 1111 1111 1111 CCV 111

Produced a server error 500 with this screen:
500 server error

Laravel log shows:
[2021-10-02 09:29:28] production.ERROR: Undefined property: stdClass::$customers {"userId":2,"exception":"[object] (ErrorException(code: 0): Undefined property: stdClass::$customers at /var/www/html/invoiceninjav5/app/PaymentDrivers/Square/CreditCard.php:278) [stacktrace] #0 /var/www/html/invoiceninjav5/app/PaymentDrivers/Square/CreditCard.php(278): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError() #1 /var/www/html/invoiceninjav5/app/PaymentDrivers/Square/CreditCard.php(179): App\\PaymentDrivers\\Square\\CreditCard->findOrCreateClient() #2 /var/www/html/invoiceninjav5/app/PaymentDrivers/Square/CreditCard.php(164): App\\PaymentDrivers\\Square\\CreditCard->storePaymentMethod() #3 /var/www/html/invoiceninjav5/app/PaymentDrivers/SquarePaymentDriver.php(93): App\\PaymentDrivers\\Square\\CreditCard->paymentResponse() #4 /var/www/html/invoiceninjav5/app/Http/Controllers/ClientPortal/PaymentController.php(324): App\\PaymentDrivers\\SquarePaymentDriver->processPaymentResponse() #5 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\ClientPortal\\PaymentController->response() #6 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction() #7 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Route.php(261): Illuminate\\Routing\\ControllerDispatcher->dispatch() #8 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController() #9 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Routing\\Route->run() #10 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}() #11 /var/www/html/invoiceninjav5/app/Http/Middleware/QueryLogging.php(40): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #12 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\QueryLogging->handle() #13 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #14 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle() #15 /var/www/html/invoiceninjav5/app/Http/Middleware/Locale.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #16 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Locale->handle() #17 /var/www/html/invoiceninjav5/app/Http/Middleware/CheckClientExistence.php(60): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #18 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\CheckClientExistence->handle() #19 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #20 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Auth\\Middleware\\Authenticate->handle() #21 /var/www/html/invoiceninjav5/app/Http/Middleware/SetDomainNameDb.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #22 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\SetDomainNameDb->handle() #23 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #24 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle() #25 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #26 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle() #27 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #28 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest() #29 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle() #30 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #31 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle() #32 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #33 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle() #34 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #35 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then() #36 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack() #37 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute() #38 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute() #39 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch() #40 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}() #41 /var/www/html/invoiceninjav5/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(55): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #42 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestIpMiddleware->handle() #43 /var/www/html/invoiceninjav5/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(52): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #44 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestMiddleware->handle() #45 /var/www/html/invoiceninjav5/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #46 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Livewire\\DisableBrowserCache->handle() #47 /var/www/html/invoiceninjav5/app/Http/Middleware/Cors.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #48 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Cors->handle() #49 /var/www/html/invoiceninjav5/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #50 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle() #51 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #52 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle() #53 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle() #54 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #55 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle() #56 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle() #57 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #58 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle() #59 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #60 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle() #61 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}() #62 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then() #63 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter() #64 /var/www/html/invoiceninjav5/public/index.php(57): Illuminate\\Foundation\\Http\\Kernel->handle() #65 {main} "}

Also just tested with another mastercard from Squares testing cards page (5105 1051 0510 5100) and it also produced the latter server error 500. So I think for the cards that require verification numbers, they aren't prompted for it in the client portal causing payment authorisation to fail (as per the first EU card) and when the card doesn't require a verification code (different from CVV) it's failing on a server 500 error.

@mrkylegp
Copy link
Author

mrkylegp commented Oct 2, 2021

As usual, some tests in real time here too: https://www.youtube.com/watch?v=Thx7QWAfHGU

@mrkylegp mrkylegp changed the title Square payment gateway issues - "Enter a valid card number" with sandbox credentials or no credit card field displayed with production credentials Square payment gateway issues - Server Error 500 / Declined_Verification / "Enter a valid card number" Oct 2, 2021
@mrkylegp mrkylegp closed this as completed Oct 2, 2021
@mrkylegp mrkylegp reopened this Oct 2, 2021
@turbo124
Copy link
Member

turbo124 commented Oct 3, 2021

#6757

this fixes for customers() issue

The second issue is for SCA implementations for EU, we'll look into this.

@turbo124 turbo124 closed this as completed Oct 3, 2021
@mrkylegp
Copy link
Author

mrkylegp commented Oct 3, 2021

#6757

this fixes for customers() issue

The second issue is for SCA implementations for EU, we'll look into this.

Thanks David!

Also as well as SCA implementation, please also add Square Gift Card implementation if possible!
The Square gift card doesn't require SCA or CVV codes so when entering the test Gift card number, its not possible to use it currently.

@mrkylegp
Copy link
Author

mrkylegp commented Oct 7, 2021

@turbo124
Unfortunately the issue is now even worse with 5.3.21. It just straight up goes to a server error 500 as soon as I choose to pay with credit card via the client portal. It's also not just Square, its actually my Paypal express as well which worked fine in V4.

As well as on my box at home, I also tested with 5.3.21 FRESH on my Namecheap shared hosting via Softaculous and retested. The server error 500 occurs the same when attempting to pay in the client portal, regardless of what payment gateway I use. That's an automated script, so it 100% shouldn't be anything I could of influenced to cause the issue.

Laravel:

[2021-10-07 06:58:11] production.ERROR: Class 'App\Services\ClientPortal\InstantPayment' not found {"userId":2,"exception":"[object] (Error(code: 0): Class 'App\\Services\\ClientPortal\\InstantPayment' not found at /var/www/html/invoiceninjav5/app/Http/Controllers/ClientPortal/PaymentController.php:83)
[stacktrace]
#0 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\ClientPortal\\PaymentController->process()
#1 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
#2 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Route.php(261): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Routing\\Route->run()
#5 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#6 /var/www/html/invoiceninjav5/app/Http/Middleware/QueryLogging.php(40): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#7 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\QueryLogging->handle()
#8 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#9 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#10 /var/www/html/invoiceninjav5/app/Http/Middleware/Locale.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#11 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Locale->handle()
#12 /var/www/html/invoiceninjav5/app/Http/Middleware/CheckClientExistence.php(60): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\CheckClientExistence->handle()
#14 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Auth\\Middleware\\Authenticate->handle()
#16 /var/www/html/invoiceninjav5/app/Http/Middleware/SetDomainNameDb.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\SetDomainNameDb->handle()
#18 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#20 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#22 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#24 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#25 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#27 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#29 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then()
#31 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack()
#32 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute()
#33 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute()
#34 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch()
#35 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#36 /var/www/html/invoiceninjav5/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(55): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestIpMiddleware->handle()
#38 /var/www/html/invoiceninjav5/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(52): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestMiddleware->handle()
#40 /var/www/html/invoiceninjav5/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Livewire\\DisableBrowserCache->handle()
#42 /var/www/html/invoiceninjav5/app/Http/Middleware/Cors.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Cors->handle()
#44 /var/www/html/invoiceninjav5/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#46 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#48 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#49 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#50 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#51 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#52 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#53 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#54 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#55 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#56 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#57 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then()
#58 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#59 /var/www/html/invoiceninjav5/public/index.php(57): Illuminate\\Foundation\\Http\\Kernel->handle()
#60 {main}
"} 

@turbo124
Copy link
Member

turbo124 commented Oct 7, 2021

please update to 5.3.22, i've just tagged it

https://github.com/invoiceninja/dockerfiles/releases/tag/5.3.22

@mrkylegp
Copy link
Author

mrkylegp commented Oct 7, 2021

please update to 5.3.22, i've just tagged it

https://github.com/invoiceninja/dockerfiles/releases/tag/5.3.22

@turbo124
Updated to 5.3.22, did update?secret=secret twice, app confirmed "New version of the app is available, please refresh". Refreshed data, cleared cache, tried again, same Error 500.

Here's the Softaculous install and what happens if needed: https://youtu.be/8oyhFB5DiP8

Laravel:

[2021-10-07 07:33:48] production.ERROR: Class 'App\Services\ClientPortal\InstantPayment' not found {"userId":2,"exception":"[object] (Error(code: 0): Class 'App\\Services\\ClientPortal\\InstantPayment' not found at /var/www/html/invoiceninjav5/app/Http/Controllers/ClientPortal/PaymentController.php:83)
[stacktrace]
#0 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\ClientPortal\\PaymentController->process()
#1 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction()
#2 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Route.php(261): Illuminate\\Routing\\ControllerDispatcher->dispatch()
#3 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Route.php(204): Illuminate\\Routing\\Route->runController()
#4 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\\Routing\\Route->run()
#5 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#6 /var/www/html/invoiceninjav5/app/Http/Middleware/QueryLogging.php(40): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#7 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\QueryLogging->handle()
#8 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#9 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#10 /var/www/html/invoiceninjav5/app/Http/Middleware/Locale.php(34): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#11 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Locale->handle()
#12 /var/www/html/invoiceninjav5/app/Http/Middleware/CheckClientExistence.php(60): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\CheckClientExistence->handle()
#14 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php(44): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Auth\\Middleware\\Authenticate->handle()
#16 /var/www/html/invoiceninjav5/app/Http/Middleware/SetDomainNameDb.php(39): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#17 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\SetDomainNameDb->handle()
#18 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(78): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#19 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#20 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#21 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#22 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#23 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#24 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#25 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#27 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#29 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\\Pipeline\\Pipeline->then()
#31 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\\Routing\\Router->runRouteWithinStack()
#32 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\\Routing\\Router->runRoute()
#33 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\\Routing\\Router->dispatchToRoute()
#34 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch()
#35 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#36 /var/www/html/invoiceninjav5/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(55): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#37 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestIpMiddleware->handle()
#38 /var/www/html/invoiceninjav5/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(52): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#39 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\\Laravel\\Http\\SetRequestMiddleware->handle()
#40 /var/www/html/invoiceninjav5/vendor/livewire/livewire/src/DisableBrowserCache.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Livewire\\DisableBrowserCache->handle()
#42 /var/www/html/invoiceninjav5/app/Http/Middleware/Cors.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\\Http\\Middleware\\Cors->handle()
#44 /var/www/html/invoiceninjav5/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#46 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#48 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ConvertEmptyStringsToNull->handle()
#49 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#50 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#51 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TrimStrings->handle()
#52 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#53 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#54 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#55 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#56 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#57 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then()
#58 /var/www/html/invoiceninjav5/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#59 /var/www/html/invoiceninjav5/public/index.php(57): Illuminate\\Foundation\\Http\\Kernel->handle()
#60 {main}
"} 

@turbo124
Copy link
Member

turbo124 commented Oct 7, 2021

can you confirm if you see the class InstantPayment in app\services\clientportal\instantpayment.php please?

@mrkylegp
Copy link
Author

mrkylegp commented Oct 7, 2021

can you confirm if you see the class InstantPayment in app\services\clientportal\instantpayment.php please?
@turbo124

(Referring to my own box at home)
Yes it was there but permissions were wrong since upgrading from the source code so it couldn't be read/executed. I corrected the permissions and now the credit card field appears, however regardless of any test cards I use from Squares sandbox cards, it says

There was an error processing your payment [500]. Please try again later.
Message:
Invalid card data..

I have Sandbox credentials in the gateway settings and test mode is ticked (as I am trying to verify this is working with Sandboxing first)

card1
card

card2

failed

@turbo124 turbo124 reopened this Oct 8, 2021
@turbo124 turbo124 added bug and removed triage labels Oct 8, 2021
@turbo124
Copy link
Member

turbo124 commented Oct 8, 2021

Thanks, this is a bug that has been introduce when implementing Square SCA requirements.

There is a bug in square with the particular flow we use (Create Payment - then store card details), we need to refactor this to Create the card first, and then capture the payment afterwards.

@mrkylegp mrkylegp changed the title Square payment gateway issues - Server Error 500 / Declined_Verification / "Enter a valid card number" Square payment gateway issues - Server Error 500 / Declined_Verification / Invalid Card Data / "Enter a valid card number" Oct 8, 2021
@turbo124
Copy link
Member

turbo124 commented Oct 9, 2021

@mrkylegp

I'm digging into this deeper.

There are a couple of issue with the Square gateway (which i've raised with them directly also).

  1. For users in Australia, they require the postal code, however they enforce 5 digits for the postal code which doesn't make sense.
  2. If you enter a postal code which does not match the postal code on the client object, the payment fails with Invalid Card Data.

From my testing, if you enter and save a 5 digital postal code on the client address, and then use this in a payment, the payment goes through correctly.

I'll tag issue on their repo for tracking

@turbo124
Copy link
Member

@mrkylegp

I've had a chat with Square about this. If you are in production, you'll need to ensure that your client postal code matches what is in Invoice Ninja and then what is entered into the Square credit card box.

When you are in the testing environment, Square is expected a 5 digit postal code so for your testing, you'll need to ensure your postal code in invoice ninja is also 5 digits.

@mrkylegp
Copy link
Author

@mrkylegp

I've had a chat with Square about this. If you are in production, you'll need to ensure that your client postal code matches what is in Invoice Ninja and then what is entered into the Square credit card box.

When you are in the testing environment, Square is expected a 5 digit postal code so for your testing, you'll need to ensure your postal code in invoice ninja is also 5 digits.

Thanks David, I can confirm that utilising a 5 digit postcode works in Sandbox.

Since that works, I find it likely production would work. I will find the right time to deploy it for production once I've played with it and checked it further with testing credentials.

I did however find another issue during this testing, and have created #6844 which is related to the Client Portal

@turbo124
Copy link
Member

#6873

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants