Account-to-Account (Open Banking) Payments

Accept payments directly from customer bank accounts using Open Banking. This integration enables secure bank-to-bank transfers with real-time authorization.

Process Overview

  1. Create Transaction - Call the Create Bank Transfer endpoint to initiate a payment
  2. Generate Payment Link - Generate a payment authorization link via API or Yugo Web UI
  3. User Authorization - Redirect the user to the payment link to initiate authorization
  4. Monitor Status - Use webhooks or polling to track transaction status
  5. Payment Completion - User completes authorization through their bank
  6. Settlement - Funds are transferred to the recipient's IBAN

API Endpoints

Create Bank Transfer

Initiate an Account-to-Account payment.

POST https://api.yugo.finance/transaction/create-bank-transfer

Headers

HeaderValue
x-api-keyYour API key

Request Body

json
{
  "amount": "100.00",
  "names": "John Doe",
  "userId": "unique-user-id-in-your-system",
  "userAddress1": "bul. Vitosha 1, 1000 Sofia Center, Sofia, Bulgaria",
  "userIpAddress": "87.126.116.201",
  "userPassedKyc": true,
  "userPassedAml": true,
  "currency": "EUR",
  "callbackChromeUrl": "yugofinance://",
  "callbackSafariUrl": "https://checkout.yugo.finance/",
  "revision": "your-transaction-id",
  "webhookUrl": "https://your-domain.com/webhook",
  "webhookPayload": "your-transaction-id"
}

Parameters

FieldTypeRequiredDescription
amountstring/numberTransaction amount. Minimum: 2. Max 2 decimal places. Can be string or number (e.g., "100.00" or 100.00)
namesstringUser's first and last name
userIdstringUnique user ID in your system. Format: {companyName}{clientId}
userAddress1stringUser's address (street and number)
userIpAddressstringUser's IP address
userPassedKycbooleanUser's KYC verification status
userPassedAmlbooleanUser's AML screening status
currencystringTransaction currency. Defaults to EUR
callbackChromeUrlstringRedirect URL for Chrome. Chrome sometimes allows deep linking via yugofinance:// if triggered correctly
callbackSafariUrlstringRedirect URL for Safari. Safari restricts automatic redirects to custom URL schemes
revisionstringVersion identifier for tracking. Max 255 characters
webhookUrlstringWebhook listener URL for status notifications
webhookPayloadstringString returned in webhook requests. Max 255 characters

Response

json
{
  "transactionId": "5d141fb0-dea0-4499-8361-0915807d1151"
}

Get Transaction

Retrieve details of an existing transaction.

GET https://api.yugo.finance/transaction/?transactionId={transactionId}

Headers

HeaderValue
x-api-keyYour API key

Response

json
{
  "uuid": "5d141fb0-dea0-4499-8361-0915807d1151",
  "amount": "100.00",
  "currency": "EUR",
  "paymentStatus": "AUTHORIZED",
  "type": "BankTransfer",
  "names": "John Doe",
  "userId": "yugo-finance-1",
  "userAddress1": "bul. Vitosha 1, 1000 Sofia Center, Sofia, Bulgaria",
  "userIpAddress": "87.126.116.201",
  "userPassedKyc": true,
  "userPassedAml": true,
  "addressPassedKyt": false,
  "payerBankAccount": {
    "iban": "DE89370400440532013000",
    "holderNames": "John Doe",
    "bank": "Revolut"
  },
  "revision": "your-transaction-id",
  "callbackChromeUrl": "yugofinance://",
  "callbackSafariUrl": "https://checkout.yugo.finance/",
  "webhookUrl": "https://your-domain.com/webhook",
  "webhookPayload": "your-transaction-id",
  "createdAt": "2025-03-18T18:55:33.872Z",
  "lastUpdated": "2025-03-18T18:55:33.872Z"
}

Note: The payerBankAccount field is included once the payment is authorized and bank account details are available.


Generate Payment Link

Generate a payment authorization link for the user.

POST https://api.yugo.finance/transaction/generatePaymentLink

Headers

HeaderValue
x-api-keyYour API key

Request Body

json
{
  "transactionId": "5d141fb0-dea0-4499-8361-0915807d1151"
}

Response

json
{
  "paymentLink": "https://oba.revolut.com/ui/index.html?response_type=code..."
}

Update Transaction Status

Manually trigger a status check and webhook notification.

POST https://api.yugo.finance/transaction/update-status

Headers

HeaderValue
x-api-keyYour API key

Request Body

json
{
  "transactionId": "5d141fb0-dea0-4499-8361-0915807d1151"
}

Response

json
{
  "paymentStatus": "AUTHORIZED"
}

Note: Calling this endpoint will also trigger the webhook notification.


Webhooks

Receiving Status Updates

When creating a transaction with a webhookUrl, Yugo sends status updates automatically.

Webhook Payload

json
{
  "status": "AUTHORIZED",
  "webhookPayload": "your-transaction-id",
  "payerBankAccount": {
    "iban": "DE89370400440532013000",
    "holderNames": "John Doe",
    "bank": "Revolut"
  }
}

Note: The payerBankAccount field is included once the payment is authorized and bank account details are available.


Payment Status Reference

StatusDescription
INTENTTransaction created, authorization not started
STARTEDAuthorization process started (authorization link generated)
AUTHORIZEDPayment authorized by bank
FAILED_INTENTAuthorization failed or rejected by bank

Important Notes

  • Yugo is not notified after the bank completes the final money transfer
  • It typically takes 2-3 hours for the sender's bank to send the payment
  • It can take up to 24 hours for the recipient bank to display the funds
Was this page helpful?