Paystack, Flutterwave and Stripe available now

One API. Every payment provider.

Connect the payment provider accounts you already have. Veyqo gives you one integration, one webhook schema and one dashboard across all of them — and your money keeps settling directly into your own provider account.

Providers live
3
Webhook schema
1
Funds held by Veyqo
None
Your applicationVeyqoPaystackStripeFlutterwave

Unified API

Switch provider by changing one string

The request shape, the response shape, the status values and the error codes are identical across every provider. Moving traffic to a different processor is a configuration change, not a migration.

Try it:

Everything below stays the same. Only provider changed.

const payment = await veyqo.payments.create({
  amount: 50000,            // kobo — smallest currency unit
  currency: "NGN",
  reference: "ORDER-1001",
  provider: "paystack",
  customer: {
    email: "customer@example.com"
  },
  metadata: { order_id: "1001" }
});

redirect(payment.checkout.url);

Unified webhooks

Three providers. Three formats. One event.

Every provider signs differently, names events differently and retries differently. Veyqo verifies each signature against that provider's own scheme, deduplicates, normalizes, and delivers you a single signed event.

charge.successPaystackcharge.completedFlutterwavepayment_intent.succeededStripeVeyqopayment.succeededOne schema. Signed.

Verified at the edge

Signatures are checked against the raw request body before anything is parsed. Failures are rejected and kept, so you can see them.

Processed exactly once

Duplicate provider webhooks are caught by a database constraint, not by hopeful application logic.

Signed on the way out

Every delivery carries an HMAC-SHA256 signature and a timestamp, so you can verify us the same way we verify them.

Payment1Request providerExplicit choice2Project defaultConfigured choice3Only connectionSafe implicit choiceSelected providerOne deterministic result

Provider selection

Choose the processor without changing your integration

Name a provider explicitly on a request, set a default for the project, or let Veyqo use the only active connection. If several providers are connected and none is selected, Veyqo refuses to guess.

  • RequestExplicit providerThe provider field on the API request wins.
  • ProjectDefault providerUsed when the request leaves provider unset.
  • Safe defaultOnly active connectionUsed only when there is exactly one choice.

Developer experience

Built for the day it breaks

Anyone can make the happy path work. Veyqo is designed around the afternoon a payment succeeded at the provider, your endpoint 500'd, and someone needs to know exactly what happened.

Raw and normalized, side by side

See exactly what the provider sent and exactly what we turned it into. No other dashboard can show you both.

Every attempt recorded

Status, duration, request headers, request body, response body — for each retry, not just the last one.

Replay on demand

Fix your handler, replay the event. No provider dashboard round-trip, no asking support.

Sandbox that behaves

Separate keys, separate credentials, separate webhooks. Test data can never reach live.

Security

Your provider keys are the most sensitive thing we hold

So the architecture is built around them: encrypted at rest behind a swappable vault interface, never returned by the API, never written to a log, and never visible in full anywhere in the product.

Encrypted credentials

Provider keys are encrypted with a key held outside the database, behind an interface that can move to a managed KMS without touching a single integration.

Never displayed in full

Secrets are shown once at creation and masked forever after. The API has no endpoint that returns one.

Signed webhooks both ways

We verify every inbound provider signature and sign every outbound delivery, with a timestamp so replays can be rejected.

Audit trail

Key creation, credential changes, role changes and replays are all recorded with actor, IP and timestamp.

No card data

Veyqo never collects or stores a card number. Card entry stays on provider-hosted checkout, which keeps PCI scope minimal by construction.

Your money, your account

Veyqo orchestrates. Funds move through your own provider account and settle to you, not through us.

Veyqo is designed with security-first infrastructure. We do not claim certifications we have not obtained — when we hold them, they will be listed here with their scope and date. Read the security overview.

Connect your first provider in about five minutes

Create a project, paste your Paystack test keys, and send a payment through Veyqo. No contract, no migration, no change to where your money lands.