Skip to main content

IBAN to Wallet - Archived Webhook

Overview

The ibanToWallet.archived webhook fires when an inbound IBAN transaction cannot be completed and is archived (e.g. due to duplication, sanction rejection, or timeout).

  • Event Name: ibanToWallet.archived
  • Target State: archived
  • HTTP Method: POST (Sent from Atlas to your configured webhook listener URL)

Webhook Headers

HeaderDescription
Content-Typeapplication/json
X-Atlas-SignatureHMAC SHA-256 signature and timestamp for message authentication
X-Atlas-Delivery-IdUnique UUID tracking this webhook delivery attempt

Payload Schema

Payload Fields

FieldTypeDescription
idintegerUnique payment transaction ID.
amountstringTransaction amount.
referencestringUnique order tracking reference.
statestringCurrent lifecycle state ("archived").
currencystringISO currency code.
typestringTransaction type ("iban_to_wallet").
walletIdintegerWallet ID.
bankingPartnerstringBanking rail partner.
receivingAccountstringVirtual IBAN recipient.
createdDatestringTimestamp when initialized.
archivedDatestringTimestamp when archived.
archiveReasonstringReason for archiving (e.g. "Duplicate transaction").
companyIdstringPlatform company identifier.

Example Payload

{
"id": 10001,
"amount": "500.00",
"reference": "REF-IBAN-001",
"state": "archived",
"currency": "EUR",
"type": "iban_to_wallet",
"walletId": 2001,
"bankingPartner": "ClearBank",
"receivingAccount": "GB29NWBK60161331926819",
"createdDate": "2024-01-15T10:30:00Z",
"archivedDate": "2024-01-16T08:00:00Z",
"archiveReason": "Duplicate transaction",
"companyId": "comp-123"
}

Expected Response

Your endpoint must respond with an HTTP 200 OK status code within 5 seconds to acknowledge delivery:

HTTP/1.1 200 OK
Content-Type: application/json

{
"status": "received"
}

Handling Example

// Express.js Webhook Handler
app.post('/api/webhooks/atlas', express.raw({ type: 'application/json' }), (req, res) => {
const signature = req.headers['x-atlas-signature'];

try {
// 1. Verify webhook signature
verifySignature(req.body, signature, process.env.ATLAS_WEBHOOK_SECRET);

const event = JSON.parse(req.body.toString());

// 2. Handle ibanToWallet.archived
if (event.state === 'archived') {
console.log(`Processing IBAN to Wallet - Archived Webhook: Reference ${event.reference}, Amount: ${event.amount} ${event.currency}`);
// Update your internal order or ledger state
}

// 3. Acknowledge receipt
res.status(200).json({ status: 'received' });
} catch (err) {
console.error('Webhook verification failed:', err.message);
res.status(400).send('Invalid signature');
}
});

Interactive Payload Schema & Example

Review the full JSON schema and test response handling: