Skip to content

Testing Your VoP Integration

Terminal window
curl https://localhost:8443/health

Expected: {"status": "healthy"}

Terminal window
curl -X POST https://localhost:8443/api/v1/verify \
--cert client.crt --key client.key \
-H "Content-Type: application/json" \
-d '{
"iban": "DE89370400440532013000",
"name": "John Smith"
}'

Expected: {"result": "MATCH", "confidence": "HIGH"}

Visit: https://localhost:8443/test

  • Enter test data
  • Click “Verify”
  • See instant results

Your VoP service comes with 131+ pre-built test cases covering all European banking requirements.

Terminal window
# Test everything (takes ~2 minutes)
make test-epc-https

Expected output:

✅ Positive Tests: 48/48 passed
✅ Error Handling: 41/41 passed
✅ Security Tests: 42/42 passed
📊 Success Rate: 100%

Test successful verification:

Terminal window
curl -X POST https://localhost:8443/api/v1/verify \
-H "Content-Type: application/json" \
-d '{
"iban": "DE89370400440532013000",
"name": "Max Mustermann"
}'

Test fraud detection:

Terminal window
curl -X POST https://localhost:8443/api/v1/verify \
-H "Content-Type: application/json" \
-d '{
"iban": "DE89370400440532013000",
"name": "Wrong Name"
}'

Test invalid IBAN:

Terminal window
curl -X POST https://localhost:8443/api/v1/verify \
-H "Content-Type: application/json" \
-d '{
"iban": "INVALID123",
"name": "John Smith"
}'

URL: https://localhost:8443/test

Features:

  • Pre-loaded test cases - Click and test instantly
  • Custom test data - Enter your own IBAN/name combinations
  • Real-time results - See verification results immediately
  • Error simulation - Test how your app handles errors
  1. ✅ Valid Matches - Names that should match
  2. ❌ Fraud Cases - Names that should be blocked
  3. ⚠️ Partial Matches - Close matches needing review
  4. 🚫 Error Cases - Invalid data and system errors
// Test your integration code
async function testVoP() {
try {
const response = await fetch('/api/v1/verify', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
iban: 'DE89370400440532013000',
name: 'John Smith'
})
});
const result = await response.json();
console.log('VoP Result:', result);
// Test your business logic
if (result.result === 'MATCH') {
console.log('✅ Payment should proceed');
} else if (result.result === 'NO_MATCH') {
console.log('❌ Payment should be blocked');
}
} catch (error) {
console.log('🚫 Handle error:', error);
}
}
import requests
def test_vop():
response = requests.post('https://localhost:8443/api/v1/verify',
json={
'iban': 'DE89370400440532013000',
'name': 'John Smith'
}
)
result = response.json()
print(f"VoP Result: {result}")
# Test your business logic
if result['result'] == 'MATCH':
print('✅ Payment should proceed')
elif result['result'] == 'NO_MATCH':
print('❌ Payment should be blocked')
  • Health check passes - Service is running
  • Basic verification works - Can verify valid names
  • Fraud detection works - Blocks invalid names
  • Error handling works - Handles invalid IBANs gracefully
  • Certificate authentication works - Secure API access
  • Your integration handles all response types - MATCH, NO_MATCH, PARTIAL_MATCH, ERROR
  • HTTPS only - No unencrypted connections
  • Client certificates required - Authentication works
  • Rate limiting works - Service protects against abuse
  • Error messages don’t leak sensitive data
Terminal window
# Check if service is running
docker ps
make epc-status
Terminal window
# Regenerate certificates
make generate-docker-certs
Terminal window
# Reset test environment
make clean-epc && make setup-epc-complete
Terminal window
# Test with multiple concurrent requests
for i in {1..10}; do
curl -X POST https://localhost:8443/api/v1/verify \
--cert client.crt --key client.key \
-H "Content-Type: application/json" \
-d '{"iban":"DE89370400440532013000","name":"John Smith"}' &
done
wait
  • Response time: < 500ms average
  • Throughput: 1000+ requests/minute
  • Uptime: 99.9%