Skip to main content
seQura

Payment Provider: seQura errors in Odoo: a worked example from start to finish

Payment Provider: seQura messages say what is missing or what seQura has rejected, and several already give the next step: save the username and password together in FlexigoTech Cloud, use the live account, paste the JSON from the widget simulator, add a mobile number or post the credit note before refunding. Here you go through them following a made-up shop, from connecting its account to refunding an order.

FlexigoTech · Editor in charge: Víctor Gómez · Updated 4 November 2026

Key facts

Module
seQura
Versions
Odoo 17, 18, 19 and 20
Checked
in the connector's source code, version 20.0 · against the sources linked at the end
Reading time
6 min

How to read the module's messages

Where the message contains %s, %(country)s, %(countries)s, %(refunded)s or %(total)s, the screen shows the detail of your case: a name, the value you typed, a country, some amounts or the reason seQura gives. Read it before you try again.

Example Illustrative case: the company and its figures are made up to explain the flow.

Cerámicas Brisa is a made-up shop selling tableware in Spain that wants to offer deferred payment with seQura from its Odoo. Marta, who runs the admin side, connects the account, sets up the widgets, collects payment by link and handles a refund. These are the messages she meets, in the order they appear.

Connecting the account through FlexigoTech Cloud

Walkthrough from the payment provider list to the seQura provider tabs
From the payment providers kanban view, with seQura in test mode, to the form with deployment and hidden credentials, the accounts tab and the payment methods tab (demo data)

When saving the credentials, the first message is Before saving the seQura username and password, an administrator has to accept that they and the calls to seQura go through FlexigoTech Cloud. Nothing was sent. An administrator has to accept that the username, password and calls to seQura go through FlexigoTech Cloud, and nothing has been sent. Marta asks whoever administers Odoo to accept it.

She then types only the username and gets Type both the seQura username and the password: they are saved together. Nothing was sent.: they are saved together, so type both. If she tries to connect before saving them, the message is Type your seQura username and password for FlexigoTech Cloud and save before connecting. or Add your seQura username and password before connecting.: type, save, then connect. If The seQura username and password of %s are not saved in FlexigoTech Cloud: type them again. appears later, type them in again. And Connect a seQura account first. means a connected seQura account is needed first.

Once connected, Marta sees seQura accepted the credentials but reported no merchant account for a country Odoo knows. Ask seQura which countries your account covers. The credentials are valid, but seQura has returned no merchant account for a country Odoo recognises. The message gives the next step: ask seQura which countries the account covers.

seQura provider form in test mode with the seQura accounts tab open and one Spain line with Merchant ID and Assets key
The seQura accounts tab with one Spain account and the notification and webhook URLs, using demo data

Moving from sandbox to live

When leaving testing, she gets To go live with %s on FlexigoTech Cloud, type the username and password of your live seQura account: sandbox and live are different accounts. Sandbox and live are different accounts, so type the live account's credentials.

To change the deployment with credentials saved, the message is Delete the seQura credentials of %s from FlexigoTech Cloud before changing its deployment: the saved ones belong to the current deployment.: delete them from FlexigoTech Cloud first. And the connection type cannot be changed: The connection of a seQura provider does not change: a new provider goes through FlexigoTech Cloud and the ones bought before keep the direct connection.

The full set of settings is in setting up seQura.

Widgets, durations and countries

For the promotional widgets, Marta types the appearance by hand and gets The widget appearance must be the JSON produced by seQura's widget simulator. %s Use the JSON produced by seQura's widget simulator; the %s gives the detail. If the value is not an object, the message is The widget appearance must be a JSON object.

seQura provider form in test mode with the seQura widgets tab open
The seQura widgets tab with product pp3, the JSON appearance and where to show widgets on product, basket and listings, using demo data

For durations, %s is not a valid service duration. Use an ISO-8601 duration such as P15D, P3M or P1Y6M. asks for an ISO-8601 duration, and %s is neither an ISO-8601 duration (P3M, P1Y6M) nor a date (2027-06-30). also accepts a date in the form 2027-06-30. In both, the %s is what you typed.

A country that does not fit brings seQura does not sell in %(country)s. It operates in %(countries)s., which already lists the countries where seQura operates.

seQura provider form in test mode with the payment methods tab open and the Refresh button
The payment methods tab with one row for Spain, pp3, Paga Fraccionado and part_payment, using demo data

Collecting payment by link

With the order still empty, sending the link gives Add something to the order before sending a payment link. She adds the lines and gets A mobile number is needed: seQura sends the link by SMS.: the customer needs a mobile number. seQura cannot finance this order: %s and seQura could not send the link: %s carry seQura's reason in the %s. seQura could not be reached: %s means seQura could not be contacted, and This transaction has not reached seQura yet. that the transaction has not got to seQura yet.

When handling the payment, Only a seQura payment that is waiting can be confirmed this way. appears if the payment is not waiting. seQura refused the capture: %s and seQura refused the void: %s give the reason the capture or the void was rejected.

With an old order, Marta sees This order was created in seQura's test environment and this account is now live, so seQura has never seen it here. There is nothing to do on seQura's side: no real money moved. Cancel the order in Odoo instead. The order was created in testing, no real money moved and it is cancelled in Odoo.

Refunding an order with a credit note

A customer returns a plate. From the invoice, Marta gets Only a credit note can be refunded through seQura.: refunds go through a credit note. With the credit note not yet posted: Post the credit note first.

If no settled payment is linked to the document, you see No settled seQura payment is linked to this document. With nothing left, the message is There is nothing left to refund on this seQura order. or There is nothing left to refund on this seQura order: %(refunded)s of %(total)s has already been returned., which shows what has been returned against the total. If seQura rejects it, seQura did not accept the refund. See the transaction %s for the reason. points you to that transaction for the reason.

Payouts and orders with no match

seQura could not report your payouts: %s means seQura could not report the payouts, with the reason in the %s. No Odoo sales order matches %s. says no Odoo sales order matches the detail in the %s. To see what each record goes through, read how the module works inside.

What the case teaches

  • Sandbox and live are different accounts: credentials are not reused and a test order is cancelled in Odoo.
  • The username and password are saved together in FlexigoTech Cloud, after an administrator has accepted.
  • When something is rejected, the reason is in the %s or in the transaction named.
  • Refunds come from a posted credit note linked to a settled payment.
  • Widget appearance is the simulator's JSON; durations are ISO-8601 or a date.

How FlexigoTech helps

The connection goes through FlexigoTech Cloud, which stores the credentials encrypted, monitors the sync and emails you if it fails; if seQura changes its API, the module and the service are adapted. The module costs €9 excluding VAT per Odoo version, one-off, for 17, 18, 19 and 20 on Odoo Apps, and the connection runs on the Connector plan, available on the module page. If you also need Odoo implemented or a bespoke integration, we do that too.

Keep reading

How Payment Provider: seQura works in Odoo: menus, scheduled actions and recordsWhich menus Payment Provider: seQura adds to Odoo, which scheduled actions run daily or weekly, and where you see orders, payments and disbursements.Setting up Payment Provider: seQura in Odoo, step by step with a worked exampleHow to set up Payment Provider: seQura in Odoo: one account per country, Merchant ID, Assets key, signed webhooks, payment methods and what to check in week one.You take payments with seQura but don't use Odoo yet: six myths about the connectorTaking payments with seQura but not on Odoo yet? What the Payment Provider: seQura connector needs, what the subscription covers and where to start.
Checked in the connector's source code (version 20.0) and the linked sources

Sources