Skip to main content

Documentation Index

Fetch the complete documentation index at: https://doc.raliopay.com/llms.txt

Use this file to discover all available pages before exploring further.

vIBAN Failed

Event Name: viban_failed
This event signifies that a PENDING vIBAN request was reviewed and rejected by compliance. The reason field describes why the request was rejected. A new vIBAN must be requested if you want to retry.

Event Payload

The webhook payload contains the following structure:
{
  "eventId": "c1d2e3f4-5a6b-7c8d-9e0f-1a2b3c4d5e6f",
  "eventType": "viban_failed",
  "timestamp": "2026-05-10T12:34:56.789Z",
  "data": {
    "vibanId": "7a1f3c5b-2d8e-4f0a-9b6c-1e3d4f5a6b7c",
    "accountId": "4c2b8e5d-1f6a-4e7c-9d3b-2a8f5c1e9b4d",
    "rail": "SEPA",
    "status": "REJECTED",
    "reason": "OFAC hit on UBO 2026-05-10"
  }
}

Payload Fields

eventId
string
required
Unique identifier for this webhook event
eventType
string
required
Event type — always viban_failed for this webhook
timestamp
string
required
ISO 8601 timestamp indicating when the event occurred
data
object
required
Event-specific payload

Expected Responses

Success Response

HTTP 200 OKThe webhook was processed successfully.

Client Error

HTTP 4xx StatusClient-side error. Will not be retried.

Server Error

HTTP 5xx StatusServer-side error. Will be retried with exponential backoff.

Implementation Example

app.post('/webhooks/ralio', async (req, res) => {
  const { eventType, data } = req.body;

  if (eventType === 'viban_failed') {
    const { vibanId, accountId, reason } = data;
    console.warn(`vIBAN ${vibanId} rejected on account ${accountId}: ${reason}`);

    // Mark the vIBAN as rejected and surface the reason to your operators
    await markVibanRejected(vibanId, reason);

    return res.status(200).json({ received: true });
  }
});