Troubleshooting
Fixes for the most common setup problems.
The card form says “Invalid origin”
Adyen hasn’t allowed the app’s address yet. Copy the origin shown in the message and add it to your client key’s Allowed origins. See Allowed origins. Remember that test and live credentials each need it.
The card fields don’t appear at all
- Check that the Adyen client key is filled in and matches the Environment:
test_…for Test,live_…for Live. - Check that Adyen is enabled under Settings → Payments.
Orders aren’t captured
- Check that Capture delay is Manual in Adyen. If Adyen captures on its own, the app’s capture fails.
- Open the order’s payment in Swell: a failed capture shows Adyen’s error message.
A capture or refund failed after it was sent
Adyen accepts a capture or refund straight away and finishes it a little later, so Swell records it as soon as Adyen accepts it. If Adyen then can’t complete it, it sends a CAPTURE_FAILED or REFUND_FAILED notification. The app writes it to the app’s function logs with the payment’s PSP reference.
- Find the payment in the Adyen Customer Area by its PSP reference, check the reason, and capture or refund it again there.
- For these alerts to arrive, the webhook must be set up with the right HMAC key. In Adyen, Developers → Webhook event logs shows whether notifications were delivered and what your store answered.
Subscription renewals fail with 14_029 “Required field ‘cvc’ is not provided”
The first order was paid, but the renewal is declined. In Adyen the declined payment shows refusal reason 14_029, “Required field ‘cvc’ is not provided”.
Cause: merchant-initiated (recurring) card payments aren’t enabled on your Adyen account. Adyen turns them off by default. The app’s renewal request is correct. A renewal runs without the shopper, so there’s no security code to send, and Adyen only accepts that once this option is on.
Fix: ask Adyen support to enable merchant-initiated (recurring) card payments on your merchant account, and include the PSP references of the declined renewals. Before you start has a message you can copy. Nothing needs to change in Swell or in the app.
Once Adyen confirms it’s on, open the subscription in Swell and select retry next to the failed invoice, or let Swell retry it automatically (hover the Error badge to see the next retry date). The same saved card is charged, so the shopper doesn’t need to do anything.
Subscription renewals fail with “Saved payment method could not be verified”
The invoice shows Error. Hovering it shows “Payment failed: Saved payment method could not be verified”, and the payment doesn’t appear in Adyen at all.
Cause: when a shopper subscribes, the app saves their card together with a signature. The signature proves the card belongs to that shopper. From app version 1.3.1 it’s created with a key the app keeps for your store, so replacing your Adyen API key doesn’t affect it. Before charging a renewal, the app checks the signature. The check fails, and the app doesn’t charge, when:
- the subscription was created on app version 1.2.1 to 1.3.0, when the signature was made with your Adyen API key, and that key was replaced afterwards (for example, you selected Generate API key in Adyen), or
- the subscription was created on app version 1.2.0 or earlier, before saved cards were signed.
Fix:
- If you replaced the API key by mistake and still have the old one, put the old key back in the app settings, then select retry on the invoice.
- Otherwise, the shopper needs to pay for the subscription again with their card at checkout. That saves a new, signed card. Cancel the old subscription afterwards.
Subscription renewals fail because there’s no saved card
Recurring contract information must be ticked under Developers → Additional data in Adyen before the first order. Subscriptions created before the setting was on have no saved card.
Error reporting
When one of the app’s functions fails, the error is written to the app’s function logs and also reported to Devkind, the app’s developer, through Bugsnag, so problems can be found and fixed quickly. Reports contain the error, ids (store, cart, order, payment) and amounts only, never shopper names, emails, addresses or card details.