API Endpoints
Account Management
Create Account
POST /accounts
Create a new account for verification.
Request Body
{
"iban": "GB29NWBK60161331926819",
"name": "John Doe"
}
Response
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"iban": "GB29NWBK60161331926819",
"name": "John Doe",
"created_at": "2023-01-01T12:00:00Z",
"updated_at": "2023-01-01T12:00:00Z"
}
Verification
Submit Verification Request
POST /verify
Submit a new verification request.
Request Body
{
"name": "John Doe",
"iban": "GB29NWBK60161331926819"
}
Response
{
"request_id": "123e4567-e89b-12d3-a456-426614174000",
"message": "Verification request submitted successfully"
}
Get Verification Result
GET /verify/{request_id}
Retrieve the result of a verification request.
Response
{
"response_id": "123e4567-e89b-12d3-a456-426614174000",
"request_id": "123e4567-e89b-12d3-a456-426614174000",
"name_match_code": "EXACT",
"id_match_code": "MATCH",
"matched_name": "John Doe",
"response_timestamp": "2023-01-01T12:00:00Z",
"created_at": "2023-01-01T12:00:00Z"
}
Test Environment Endpoints
The following endpoints are provided for testing purposes only. They allow you to create and manage test accounts to validate your integration with the VoP API. These endpoints should not be used in production environments.
Create Test Account
POST /api/accounts
Creates a test account for API integration testing. This endpoint is not intended for production use.
Request Body
{
"iban": "GB29NWBK60161331926819",
"name": "John Doe"
}
Response
{
"id": "acc_123456",
"iban": "GB29NWBK60161331926819",
"name": "John Doe",
"created_at": "2024-12-11T17:25:53Z"
}
Examples
curl -X POST https://localhost:8080/api/accounts \
-H "Content-Type: application/json" \
-d '{
"iban": "GB29NWBK60161331926819",
"name": "John Doe"
}'
Delete Test Account
DELETE /api/accounts/{account_id}
Removes a test account. Use this to clean up after your integration tests.
Response
{
"status": "success",
"message": "Test account deleted successfully"
}
Example (Python)
def delete_test_account(account_id):
url = f"https://localhost:8080/api/accounts/{account_id}"
response = requests.delete(url)
return response.json()
Production Endpoints
Verify Account
POST /api/verify
This is the main production endpoint for verifying payee details.
Request Body
{
"iban": "GB29NWBK60161331926819",
"name": "John Doe"
}
Response
{
"match": true,
"confidence_score": 0.95,
"verification_id": "vrf_123456",
"verified_at": "2024-12-11T17:25:53Z"
}
Example (Python)
def verify_account(iban, name):
url = "https://localhost:8080/api/verify"
data = {
"iban": iban,
"name": name
}
response = requests.post(url, json=data)
return response.json()
Important Notes
-
Test vs Production
- Create and Delete account endpoints are for testing only
- Use separate API keys for test and production environments
- Test accounts are automatically cleared after 24 hours
-
Rate Limits
- Test endpoints: 100 requests per hour
- Production endpoints: Based on your service agreement
-
Best Practices
- Always clean up test accounts after integration testing
- Never use test accounts for real transactions
- Use meaningful account holder names in test data
Error Responses
All endpoints follow the same error response format. See Error Handling for details.
{
"error": {
"code": "ERROR_CODE",
"message": "Human readable error message"
}
}
Base URL
https://api.vop.com/v1
Account Verification
Verify Single Account
POST /verify
Verify a single account name against provided details.
Request Body
{
"accountNumber": "12345678",
"sortCode": "123456",
"accountName": "John Doe"
}
Response
{
"match": "FULL",
"suggestedName": "John Doe",
"confidence": 100,
"status": "ACTIVE"
}
Batch Verification
POST /verify/batch
Verify multiple accounts in a single request.
Request Body
{
"accounts": [
{
"accountNumber": "12345678",
"sortCode": "123456",
"accountName": "John Doe"
},
{
"accountNumber": "87654321",
"sortCode": "654321",
"accountName": "Jane Smith"
}
]
}
Account Management
Check Account Status
GET /account/{accountId}/status
Check if an account is active and available for verification.
Account History
GET /account/{accountId}/history
Retrieve verification history for an account.
Get Account
Retrieves details of a specific account.
Endpoint: GET /api/accounts/{id}
Example Requests:
curl https://localhost:8080/api/accounts/123e4567-e89b-12d3-a456-426614174000
Success Response (200 OK):
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"iban": "DE89370400440532013000",
"created_at": "2024-12-11T17:00:00Z",
"updated_at": "2024-12-11T17:00:00Z"
}
Update Account
Updates an existing account’s details.
Endpoint: PUT /api/accounts/{id}
Request Body:
{
"iban": "DE89370400440532013000"
}
Example Requests:
curl -X PUT https://localhost:8080/api/accounts/123e4567-e89b-12d3-a456-426614174000 \
-H "Content-Type: application/json" \
-d '{
"iban": "DE89370400440532013000"
}'
Success Response (200 OK):
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"iban": "DE89370400440532013000",
"created_at": "2024-12-11T17:00:00Z",
"updated_at": "2024-12-11T17:00:00Z"
}
Delete Account
Deletes an account from the system.
Endpoint: DELETE /api/accounts/{id}
Example Requests:
curl -X DELETE https://localhost:8080/api/accounts/123e4567-e89b-12d3-a456-426614174000
Success Response: 204 No Content
Webhooks
Register Webhook
POST /webhooks
Register a webhook for verification events.
Request Body
{
"url": "https://your-domain.com/webhook",
"events": ["verification.success", "verification.failure"],
"secret": "your_webhook_secret"
}
List Webhooks
GET /webhooks
List all registered webhooks.
Analytics
Usage Statistics
GET /analytics/usage
Get API usage statistics.
Match Rate Analytics
GET /analytics/match-rates
Get verification match rate statistics.
Verification
Submit Verification Request
Submits a new verification request.
Endpoint: POST /api/verify
Request Body:
{
"name": "John Doe",
"iban": "DE89370400440532013000"
}
Example Requests:
curl -X POST https://localhost:8080/api/verify \
-H "Content-Type: application/json" \
-d '{
"name": "John Doe",
"iban": "DE89370400440532013000"
}'
Success Response (201 Created):
{
"request_id": "123e4567-e89b-12d3-a456-426614174000",
"message": "Verification request submitted successfully"
}
Get Verification Result
Retrieves the result of a verification request.
Endpoint: GET /api/verify/{request_id}
Example Requests:
curl https://localhost:8080/api/verify/123e4567-e89b-12d3-a456-426614174000
Success Response (200 OK):
{
"response_id": "987fcdeb-51a2-43fe-ba1e-2075d3c54321",
"request_id": "123e4567-e89b-12d3-a456-426614174000",
"name_match_code": "EXACT",
"id_match_code": "EXACT",
"matched_name": "John Doe",
"response_timestamp": "2024-12-11T17:05:00Z",
"created_at": "2024-12-11T17:05:00Z"
}
Error Responses
All endpoints may return these error responses:
{
"error": {
"code": "ERROR_CODE",
"message": "Human readable message",
"details": {
// Additional error details
}
}
}
Common error codes:
INVALID_REQUEST
: Request validation failedACCOUNT_NOT_FOUND
: Account doesn’t existRATE_LIMIT_EXCEEDED
: Too many requestsINTERNAL_ERROR
: Server error
Next Steps
- Learn about Authentication
- Understand Error Handling
- Review API Best Practices