This interactive simulator allows you to test and explore cross-border payment scenarios using the WIA-FIN-014 standard. Simulate SWIFT transfers, instant remittances, forex operations, and more.
Test payments across 50+ currency pairs with real-time FX rates
Simulate instant and same-day payment scenarios
Test AML/KYC checks and regulatory requirements
Support for SWIFT, SEPA, ACH, and blockchain rails
Configure and test a cross-border payment transaction
Test regulatory compliance and validation rules for cross-border payments
Validates sender and recipient identity documents and risk profile
| Limit Type | Daily Limit | Monthly Limit | Status |
|---|---|---|---|
| Individual Remittance | $10,000 | $50,000 | โ Within Limits |
| Business Payment | $100,000 | $1,000,000 | โ Within Limits |
| Forex Trading | $500,000 | $10,000,000 | โ Within Limits |
View detailed results and analytics for simulated payments
| Transaction ID | From โ To | Amount | Method | Status | Duration |
|---|---|---|---|---|---|
| TXN-20250001 | US โ PH | $1,000 โ โฑ56,750 | SWIFT | โ Completed | 2.3s |
| TXN-20250002 | UK โ IN | ยฃ500 โ โน52,150 | Instant | โ Completed | 0.8s |
| TXN-20250003 | SG โ TH | S$2,000 โ เธฟ48,960 | Blockchain | โ Completed | 1.2s |
1.4s
99.7%
0.5%
$45.2K
| Currency Pair | Rate | 24h Change | Last Updated |
|---|---|---|---|
| USD/PHP | 56.75 | +0.12% | 2025-12-25 14:30 UTC |
| GBP/INR | 104.30 | -0.08% | 2025-12-25 14:30 UTC |
| SGD/THB | 24.48 | +0.05% | 2025-12-25 14:30 UTC |
Learn how to integrate cross-border payment capabilities into your application
npm install @wia/cross-border-payment-sdk
import { CrossBorderPaymentClient } from '@wia/cross-border-payment-sdk';
const client = new CrossBorderPaymentClient({
apiKey: 'your-api-key',
environment: 'sandbox'
});
const payment = await client.createPayment({
sender: {
name: 'John Doe',
country: 'US',
currency: 'USD'
},
recipient: {
name: 'Jane Smith',
country: 'PH',
currency: 'PHP',
accountNumber: '1234567890'
},
amount: 1000,
method: 'SWIFT',
purpose: 'Family support'
});
console.log(payment.id); // TXN-20250001
console.log(payment.status); // 'PENDING'
const status = await client.getPaymentStatus(payment.id);
console.log(status.state); // 'COMPLETED'
console.log(status.exchangeRate); // 56.75
console.log(status.recipientAmount); // 56750
const rate = await client.getFxRate('USD', 'PHP');
console.log(rate.buy); // 56.75
console.log(rate.sell); // 56.85
console.log(rate.mid); // 56.80
// Set up webhook endpoint
app.post('/webhooks/payment', (req, res) => {
const event = req.body;
if (event.type === 'payment.completed') {
console.log('Payment completed:', event.data.id);
// Update your database
}
res.sendStatus(200);
});
try {
const payment = await client.createPayment(paymentData);
} catch (error) {
if (error.code === 'INSUFFICIENT_BALANCE') {
console.log('Insufficient balance');
} else if (error.code === 'COMPLIANCE_FAILED') {
console.log('Compliance check failed');
}
}
โข Always use HTTPS in production
โข Validate webhook signatures
โข Implement retry logic for failed payments
โข Store API keys securely (use environment variables)
โข Test thoroughly in sandbox before going live