Transaction Identifier
Identify the brand behind a bank transaction descriptor. Useful for enriching financial data with brand logos, colors, and metadata.
Endpoint: GET /v1/brand/transaction-identifier
Credits: 10 per request
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
transaction_info | string | Yes | Raw transaction descriptor string (e.g., STRIPE* VERCEL INC) |
country_gl | string | No | Two-letter country code for disambiguation (e.g., US, GB) |
maxSpeed | boolean | No | If true, only check cache/DB — no live extraction (default: false) |
Response Schema
{
"success": true,
"data": {
"name": "Vercel",
"domain": "vercel.com",
"description": "Vercel's frontend cloud gives developers frameworks, workflows, and infrastructure to build a faster, more personalized web.",
"logos": [
{
"url": "https://cdn.orsa.dev/logos/vercel-dark.svg",
"type": "svg",
"theme": "dark"
}
],
"colors": ["#000000", "#FFFFFF", "#0070F3"],
"industry": "Cloud Computing",
"transaction": {
"descriptor": "STRIPE* VERCEL INC",
"normalized": "STRIPE VERCEL INC",
"confidence": 0.92,
"country": "US"
}
},
"credits_used": 10,
"request_id": "b8c9d0e1-f2a3-4567-1234-678901234567"
}Code Examples
cURL
curl -X GET "https://api.orsa.dev/v1/brand/transaction-identifier?transaction_info=STRIPE*%20VERCEL%20INC&country_gl=US" \
-H "Authorization: Bearer YOUR_API_KEY"TypeScript
const result = await client.brand.transactionIdentifier({
transactionInfo: 'STRIPE* VERCEL INC',
countryGl: 'US',
});
console.log(result.name); // "Vercel"
console.log(result.domain); // "vercel.com"
console.log(result.transaction.confidence); // 0.92Python
result = client.brand.transaction_identifier(
transaction_info="STRIPE* VERCEL INC",
country_gl="US",
)
print(result.name) # "Vercel"
print(result.domain) # "vercel.com"
print(result.transaction.confidence) # 0.92Error Codes
| Code | Status | Description |
|---|---|---|
INPUT_VALIDATION_ERROR | 400 | Missing or empty transaction_info |
UNAUTHORIZED | 401 | Missing or invalid API key |
NOT_FOUND | 404 | No brand match found for the transaction descriptor |
RATE_LIMITED | 429 | Rate limit exceeded |
USAGE_EXCEEDED | 402 | Insufficient credits |
Notes
- Transaction descriptors are normalized (uppercased, special characters stripped) before matching.
- The
confidencefield (0–1) indicates match quality. Scores above 0.8 are generally reliable. - Use
country_glto improve accuracy when the same descriptor could match different merchants in different countries. - Set
maxSpeed=trueto only check cached/indexed data — useful for real-time UIs where latency matters. - Maximum descriptor length is 500 characters.
- Common prefixes like
STRIPE*,SQ *,PP*are handled automatically.