Skip to main content

Wallet Credit - Success (VPay)

Overview

The wallet.credit.success webhook fires when a VPay (inter-company wallet) transfer settles into the recipient company's wallet. It includes sender corporate metadata and client reference information.

  • Event Name: wallet.credit.success
  • Target State: completed
  • 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
companyIdstringReceiver company ID (e.g. "200").
eventTypestringEvent type identifier ("wallet.credit.success").
createdAtstringTimestamp when event was dispatched.
eventobjectCore payment settlement payload.
event.referencestringTransfer reference (e.g. "TO-01012025-ABCD").
event.methodstringPayment method ("VPay").
event.statusstringTransfer status at credit time ("completed").
event.createdDatestringWhen transfer was requested.
event.completedDatestringWhen funds were credited.
event.walletIdstringReceiver wallet ID that received funds.
event.clientReferencestringClient-supplied memo or invoice reference.
event.amountnumberNet amount credited (e.g. 5000).
event.currencystringCurrency code (e.g. "GBP").
event.senderobjectSender company metadata.
event.sender.referencestringSender business reference (e.g. "VU-00441").
event.sender.namestringSender business registered name (e.g. "Brisk Pay Ltd").

Example Payload

{
"companyId": "200",
"eventType": "wallet.credit.success",
"createdAt": "2025-01-01T10:01:00.000Z",
"event": {
"reference": "TO-01012025-ABCD",
"method": "VPay",
"status": "completed",
"createdDate": "2025-01-01T10:00:00.000Z",
"completedDate": "2025-01-01T10:01:00.000Z",
"walletId": "437747",
"clientReference": "invoice-42",
"amount": 5000,
"currency": "GBP",
"sender": {
"reference": "VU-00441",
"name": "Brisk Pay Ltd"
}
}
}

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 wallet.credit.success
if (event.state === 'completed') {
console.log(`Processing Wallet Credit - Success (VPay): 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: