Getting Started
Get up and running with VOP API in 5 minutes
Quick Start Overview
The VOP API enables you to verify payee information before processing payments. This guide will help you make your first API call in minutes.
1
Get Credentials
Register for API access
2
Set Up Auth
Configure JWT token
3
Make First Call
Verify a test payee
4
Handle Response
Process verification result
Step 1: Get Your API Credentials
To access the VOP API test environment:
- Contact Trendtech with your company details
- You'll receive:
- Client ID
- Client Secret
- Auth0 domain details
Step 2: Authenticate
The VOP API uses JWT tokens for authentication. Get your token:
curl -X POST https://your-auth0-domain/oauth/token \
-H "Content-Type: application/json" \
-d '{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"audience": "https://api.trendtech.uk/vop",
"grant_type": "client_credentials"
}'
Response:
{
"access_token": "eyJhbGciOiJSUzI1NiIs...",
"token_type": "Bearer",
"expires_in": 86400
}
Step 3: Make Your First API Call
Verify a payee using their name and IBAN:
curl -X POST https://environmentDefaultValue.trendtech.uk/vop/v1/request \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-H "X-Request-ID: 550e8400-e29b-41d4-a716-446655440000" \
-d '{
"party": {
"name": "John Doe"
},
"partyAccount": {
"iban": "BE12345678901234"
},
"partyAgent": {
"financialInstitutionId": {
"bicfi": "GEBABEBBXXX"
}
},
"requestingAgent": {
"financialInstitutionId": {
"bicfi": "DEUTDEFFXXX"
}
}
}'
Step 4: Handle the Response
The API returns a verification result:
{
"partyNameMatch": "MTCH"
}
Response Codes
| Code | Meaning | Action |
|---|---|---|
MTCH |
Exact match | Proceed with payment |
NMTC |
No match | Review payment details |
CMTC |
Close match | Show actual name to user |
NOAP |
No account found | Account doesn't exist |
Complete Examples
Python
import requests
import json
# Get auth token
auth_response = requests.post(
"https://your-auth0-domain/oauth/token",
json={
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET",
"audience": "https://api.trendtech.uk/vop",
"grant_type": "client_credentials"
}
)
token = auth_response.json()["access_token"]
# Verify payee
vop_response = requests.post(
"https://environmentDefaultValue.trendtech.uk/vop/v1/request",
headers={
"Authorization": f"Bearer {token}",
"Content-Type": "application/json",
"X-Request-ID": "550e8400-e29b-41d4-a716-446655440000"
},
json={
"party": {"name": "John Doe"},
"partyAccount": {"iban": "BE12345678901234"},
"partyAgent": {"financialInstitutionId": {"bicfi": "GEBABEBBXXX"}},
"requestingAgent": {"financialInstitutionId": {"bicfi": "DEUTDEFFXXX"}}
}
)
result = vop_response.json()
if result.get("partyNameMatch") == "MTCH":
print("✅ Payee verified!")
elif result.get("partyNameMatch") == "CMTC":
print(f"⚠️ Close match: {result.get('matchedName')}")
else:
print("❌ Verification failed")
JavaScript (Node.js)
const axios = require('axios');
async function verifyPayee() {
// Get auth token
const authResponse = await axios.post('https://your-auth0-domain/oauth/token', {
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
audience: 'https://api.trendtech.uk/vop',
grant_type: 'client_credentials'
});
const token = authResponse.data.access_token;
// Verify payee
const vopResponse = await axios.post(
'https://environmentDefaultValue.trendtech.uk/vop/v1/request',
{
party: { name: 'John Doe' },
partyAccount: { iban: 'BE12345678901234' },
partyAgent: { financialInstitutionId: { bicfi: 'GEBABEBBXXX' } },
requestingAgent: { financialInstitutionId: { bicfi: 'DEUTDEFFXXX' } }
},
{
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json',
'X-Request-ID': '550e8400-e29b-41d4-a716-446655440000'
}
}
);
const result = vopResponse.data;
if (result.partyNameMatch === 'MTCH') {
console.log('✅ Payee verified!');
} else {
console.log('❌ Verification failed');
}
}
verifyPayee();
Java
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class VopExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
// First get auth token (simplified)
String token = "YOUR_ACCESS_TOKEN";
// Create request
String requestBody = """
{
"party": {"name": "John Doe"},
"partyAccount": {"iban": "BE12345678901234"},
"partyAgent": {"financialInstitutionId": {"bicfi": "GEBABEBBXXX"}},
"requestingAgent": {"financialInstitutionId": {"bicfi": "DEUTDEFFXXX"}}
}
""";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://environmentDefaultValue.trendtech.uk/vop/v1/request"))
.header("Authorization", "Bearer " + token)
.header("Content-Type", "application/json")
.header("X-Request-ID", "550e8400-e29b-41d4-a716-446655440000")
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();
HttpResponse response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println("Response: " + response.body());
}
}
Next Steps
- Explore the full API reference
Need Help?
If you run into any issues:
- Check the API documentation for detailed field descriptions
- Contact developer support