API Reference
Brand Intelligence
Transaction Identifier

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

ParameterTypeRequiredDescription
transaction_infostringYesRaw transaction descriptor string (e.g., STRIPE* VERCEL INC)
country_glstringNoTwo-letter country code for disambiguation (e.g., US, GB)
maxSpeedbooleanNoIf 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.92

Python

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.92

Error Codes

CodeStatusDescription
INPUT_VALIDATION_ERROR400Missing or empty transaction_info
UNAUTHORIZED401Missing or invalid API key
NOT_FOUND404No brand match found for the transaction descriptor
RATE_LIMITED429Rate limit exceeded
USAGE_EXCEEDED402Insufficient credits

Notes

  • Transaction descriptors are normalized (uppercased, special characters stripped) before matching.
  • The confidence field (0–1) indicates match quality. Scores above 0.8 are generally reliable.
  • Use country_gl to improve accuracy when the same descriptor could match different merchants in different countries.
  • Set maxSpeed=true to 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.