Skip to main content

Making payments

Moving money is the point of an embedded finance app. This page builds the payment flows: shifting funds between a customer's own instrumentsInstrumentA financial product owned by a customer. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases)., paying another Weavr customer, and sending money out to an external bank - each with the right Strong Customer Authentication step.

Where this fits

This page assumes you've built authentication and that the customer holds a funded managed account. Payments move real value, so most carry an SCASCA (Strong Customer Authentication). Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics). step - the same step-up you built earlier.

Here's the payment review screen you'll build. It's your own UI, driven end to end by API calls - each pin shows the endpoint behind it:

Step 1: Pick the right transaction type

A transaction is a movement of funds between instruments. Which one you use depends on where the money is going:

User intent in your appTransaction typeMoves money
Move funds between my own instrumentsInstrumentA financial product owned by a customer. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases).TransferBetween two of the same customer's instrumentsInstrumentA financial product owned by a customer. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases).
Pay another Weavr customerSendFrom your customer to another Weavr customer
Pay an external bank accountOutgoing wire transferFrom a managed accountManaged AccountAn account held at a financial institution that can be created and managed through the Weavr platform. Each account has a balance where customers can hold funds. Optionally, an IBAN can be assigned to enable wire transfers to bank accounts outside of Weavr. out to a third-party bank
Spend on a cardCard paymentFrom a card at a merchant (handled by the scheme)

Card spending is driven by the cardholder at a merchant - you don't initiate it - so your app mostly retrieves and displays those. The three you initiate are transfers, sends, and outgoing wire transfersWire TransferA transaction that moves funds between accounts. An incoming wire transfer moves funds from a third-party bank account to a Weavr managed account, while an outgoing wire transfer moves funds from a Weavr managed account to a third-party bank account. Wire transfers require the managed account to have an assigned IBAN (for EUR) or sort code and account number (for GBP)..

Step 2: Move money internally with transfers

The simplest payment is a transfer - money between two instrumentsInstrumentA financial product owned by a customer. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases). the same customer owns, for example topping a prepaid card up from a managed accountManaged AccountAn account held at a financial institution that can be created and managed through the Weavr platform. Each account has a balance where customers can hold funds. Optionally, an IBAN can be assigned to enable wire transfers to bank accounts outside of Weavr.. Transfers stay inside Weavr, so they settle instantly.

POST/transfersOpen API reference
/transfers
{  "profileId": "10001",  "tag": "invoice-2026-0042",  "source": {    "type": "managed_accounts",    "id": "123456789"  },  "destination": {    "type": "managed_accounts",    "id": "987654321"  },  "destinationAmount": {    "currency": "GBP",    "amount": 1250  },  "description": "Invoice 2026-0042"}

Step 3: Pay another Weavr customer with a send

A send moves funds from your customer's instrumentInstrumentA financial product owned by a customer. There are two types: Managed Accounts (stored-value accounts that hold balances and can receive wire transfers) and Managed Cards (prepaid cards - virtual or physical - used for purchases). to another customer on the same Weavr program. Because a send can leave your customer's control, it's subject to Strong Customer Authentication unless the destination is a trusted payee.

POST/sendsOpen API reference
/sends
{  "profileId": "10001",  "tag": "customer-123",  "source": {    "id": "123456789",    "type": "managed_accounts"  },  "destination": {    "id": "123456789",    "type": "managed_accounts"  },  "destinationAmount": {    "currency": "GBP",    "amount": 1250  },  "description": "Invoice 1042",  "scheduledTimestamp": "1786118400000"}

Step 4: Pay an external bank with an outgoing wire transfer

An outgoing wire transfer (OWT) sends funds from a managed accountManaged AccountAn account held at a financial institution that can be created and managed through the Weavr platform. Each account has a balance where customers can hold funds. Optionally, an IBAN can be assigned to enable wire transfers to bank accounts outside of Weavr. to a bank account at another institution. This is the flow with the most moving parts, so build it carefully.

Before a customer can send one, they need a managed account with an assigned IBAN and an enrolled device for SCASCA (Strong Customer Authentication). Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics)..

Create the transfer

POST/outgoing_wire_transfersOpen API reference
/outgoing_wire_transfers
{  "profileId": "10001",  "tag": "customer-123",  "sourceInstrument": {    "type": "managed_accounts",    "id": "123456789"  },  "transferAmount": {    "currency": "GBP",    "amount": 1250  },  "purpose": "Invoice payment",  "description": "Invoice 1042",  "destinationBeneficiary": {    "name": "Alex Smith",    "type": "PERSONAL",    "address": "1 High Street, London W1A 1AA",    "bankName": "National Westminster Bank PLC",    "bankAddress": "250 Bishopsgate, London EC2M 4AA",    "bankCountry": "GB",    "bankAccountDetails": {      "iban": "GB29NWBK60161331926819",      "bankIdentifierCode": "NWBKGB2L"    },    "nationality": "GB",    "dateOfBirth": "1990-01-01"  },  "scheduledTimestamp": "1786118400000"}

Show the payee verification result

Weavr runs an automatic payee name check before the money leaves. The transfer is created in PENDING_CONFIRMATION, and your app must show the result to the user so they can confirm or cancel:

  • GBP via Faster PaymentsFaster PaymentsThe UK domestic real-time payment scheme (run by Pay.UK) used to clear GBP wire transfers between UK bank accounts in seconds. GBP managed accounts settle incoming and outgoing wire transfers via Faster Payments, and our [Confirmation of Payee](/transactions/owt/cop/overview) checks run over this scheme. uses Confirmation of Payee (CoP) - returns Match, Close Match, or No Match, with reason codes.
  • EUR via SEPASEPA (Single Euro Payments Area). Single Euro Payments Area - the European scheme that standardises euro-denominated bank transfers across participating countries. EUR managed accounts settle incoming and outgoing wire transfers via SEPA Credit Transfer (SCT) or SEPA Instant; our [Verification of Payee](/transactions/owt/vop/overview) check runs against the IBAN registered with the beneficiary's bank or PSP before a SEPA payment executes. uses Verification of Payee (VoP) - returns Match, Close Match, No Match, or Not Possible.

The VoP result screen gives ready-made UI patterns for presenting these outcomes.

Confirm with Strong Customer Authentication

Once the user reviews the payee result, they confirm the transfer. Confirmation is an SCASCA (Strong Customer Authentication). Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics). step - step up the user's token, then confirm:

POST/outgoing_wire_transfers/{id}/confirmOpen API reference
/outgoing_wire_transfers/123456789/confirm

See confirm transactions for how confirmation and step-up fit together across transaction types.

Skip the extra approval with trusted payees

If the destination is a saved trusted payee, an OWTOWT (Outgoing Wire Transfer). Outgoing Wire Transfer - a transaction that moves funds from a Weavr managed account to a bank account held at a third-party financial institution. OWTs require the managed account to have an assigned IBAN and the user to complete Strong Customer Authentication. or send can skip Strong Customer Authentication and execute automatically - fewer taps for your customer on recurring payments. That's the next page.

Step 5: Test in the sandbox

Move money without real funds using the Simulator: fund an account, settle transfers, and trigger specific OWTOWT (Outgoing Wire Transfer). Outgoing Wire Transfer - a transaction that moves funds from a Weavr managed account to a bank account held at a third-party financial institution. OWTs require the managed account to have an assigned IBAN and the user to complete Strong Customer Authentication. outcomes - including CoP and VoP match results - with the OWT sandbox testing helpers. Subscribe to the outgoing wire transfer and transaction activity events so your app reflects each state change.

What you've built

Your app can now move money three ways - internally, to other Weavr customers, and out to external banks - with payee verification and SCASCA (Strong Customer Authentication). Strong Customer Authentication - a two-factor authentication solution required by PSD2 regulations for when end-users are accessing their payment account sensitive information or initiating transactions. SCA requires at least two of the following: something you know (password), something you have (device), or something you are (biometrics). where the regulations require them.

Next, cut the friction on repeat payments: managing trusted payees.