# triple v1.0.0 - Table of Contents

> Elixir client for the Triple transaction data enrichment API

## Pages

- [Triple](readme.md)
- [Changelog](changelog.md)
- [LICENSE](license.md)

## Modules

- [Triple.Types.Enrich.V1.Response.Address](Triple.Types.Enrich.V1.Response.Address.md): Structured merchant address (card acceptor location).
- [Triple.Types.Enrich.V1.Response.CO2Footprint](Triple.Types.Enrich.V1.Response.CO2Footprint.md): Estimated CO2 emissions for the transaction.
- [Triple.Types.Enrich.V1.Response.Category](Triple.Types.Enrich.V1.Response.Category.md): A single transaction category label.
- [Triple.Types.Enrich.V1.Response.Contact](Triple.Types.Enrich.V1.Response.Contact.md): Merchant contact details.
- [Triple.Types.Enrich.V1.Response.Coordinates](Triple.Types.Enrich.V1.Response.Coordinates.md): Latitude/longitude pair (`lat`/`lon`) for a merchant location.
- [Triple.Types.Enrich.V1.Response.Fraud](Triple.Types.Enrich.V1.Response.Fraud.md): Fraud signal for the merchant.
- [Triple.Types.Enrich.V1.Response.MerchantLocation](Triple.Types.Enrich.V1.Response.MerchantLocation.md): Location enrichment. Online (`ECOMMERCE`) transactions never carry a
location, so `enabled?/1` will be `false` for those.

- [Triple.Types.Enrich.V1.Response.PaymentProcessor](Triple.Types.Enrich.V1.Response.PaymentProcessor.md): Identified intermediary payment processor/gateway (e.g. PayPal, SumUp), if any.
- [Triple.Types.Enrich.V1.Response.Subscriptions](Triple.Types.Enrich.V1.Response.Subscriptions.md): Recurring payment / subscription detection.
- [Triple.Types.Enrich.V1.Response.VisualEnrichment](Triple.Types.Enrich.V1.Response.VisualEnrichment.md): Visual branding enrichment: clean merchant name, logo, etc.
- [Triple.Types.Enrich.V2.Response.Brand](Triple.Types.Enrich.V2.Response.Brand.md): Identified merchant brand.
- [Triple.Types.Enrich.V2.Response.CO2](Triple.Types.Enrich.V2.Response.CO2.md): CO2 emissions estimate (v2 shape — flat).
- [Triple.Types.Enrich.V2.Response.Category](Triple.Types.Enrich.V2.Response.Category.md): A single transaction category label (v2 shape).
- [Triple.Types.Enrich.V2.Response.Contact](Triple.Types.Enrich.V2.Response.Contact.md): Brand/processor contact details (v2 shape — flat, no `enabled` flag).
- [Triple.Types.Enrich.V2.Response.Fraud](Triple.Types.Enrich.V2.Response.Fraud.md): Fraud signal (v2 shape — flat).
- [Triple.Types.Enrich.V2.Response.Location](Triple.Types.Enrich.V2.Response.Location.md): Merchant location (v2 shape — flat fields).
- [Triple.Types.Enrich.V2.Response.PaymentProcessor](Triple.Types.Enrich.V2.Response.PaymentProcessor.md): Identified payment processor (v2 shape).
- [Triple.Types.Enrich.V2.Response.Subscription](Triple.Types.Enrich.V2.Response.Subscription.md): Recurring-payment detection (v2 shape — flat, singular).

- API Contexts
  - [Triple](Triple.md): Elixir client for the [Triple](https://jointriple.com) transaction data
enrichment API.
  - [Triple.Brands](Triple.Brands.md): Brand lookups — fetch a brand's canonical name/logo by id.

  - [Triple.Cryptos](Triple.Cryptos.md): Cryptocurrency lookups by slug.

  - [Triple.Enrich](Triple.Enrich.md): Transaction enrichment — the core of the Triple API.
  - [Triple.Feedback](Triple.Feedback.md): Report incorrect or missing enrichment data back to Triple, helping its
models improve over time.

  - [Triple.Stocks](Triple.Stocks.md): Brokerage product (stock/fund) lookups by ISIN.

  - [Triple.TLS](Triple.TLS.md): Issues mTLS client certificates against Triple's control-plane host (a
different host from the main enrichment/data API — see
`Triple.Config`).

- Enrichment Types (v1 — structured)
  - [Triple.Types.Enrich.V1.Request](Triple.Types.Enrich.V1.Request.md): Request payload for `POST /v1/enrich-transaction/` — structured
transaction enrichment.
  - [Triple.Types.Enrich.V1.Response](Triple.Types.Enrich.V1.Response.md): Response payload for `POST /v1/enrich-transaction/`.

- Enrichment Types (v2 — unstructured)
  - [Triple.Types.Enrich.V2.Request](Triple.Types.Enrich.V2.Request.md): Request payload for `POST /v2/enrich-unstructured-transaction/` — free-text
transaction enrichment, for when all you have is a raw description string
rather than discrete merchant fields.
  - [Triple.Types.Enrich.V2.Response](Triple.Types.Enrich.V2.Response.md): Response payload for `POST /v2/enrich-unstructured-transaction/`.

- Brokerage Types
  - [Triple.Types.Crypto](Triple.Types.Crypto.md): A cryptocurrency resource as returned by `GET /v1/cryptos/{slug}/`.

  - [Triple.Types.Resource](Triple.Types.Resource.md): A single visual asset (logo), returned for both stocks and cryptos in
one of four formats.

  - [Triple.Types.Stock](Triple.Types.Stock.md): A stock/fund resource as returned by `GET /v1/stocks/{isin}/`.

- Other Types
  - [Triple.Types.Brand](Triple.Types.Brand.md): A brand resource as returned by `GET /v1/brands/{id}/`.
  - [Triple.Types.FeedbackRequest](Triple.Types.FeedbackRequest.md): Request payload for `POST /v1/customer-feedback/` — report enrichment
data that is missing or wrong for a given transaction.
  - [Triple.Types.TLSCertificate](Triple.Types.TLSCertificate.md): A TLS certificate as returned by `POST /v1/tls-certificates/` (HTTP `201`).
  - [Triple.Types.TLSCertificateRequest](Triple.Types.TLSCertificateRequest.md): Request payload for `POST /v1/tls-certificates/` (control-plane host) —
issues a new mTLS client certificate.

- Infrastructure
  - [Triple.Client](Triple.Client.md): Low-level HTTP plumbing for the Triple API, built on
[`Req`](https://hexdocs.pm/req).
  - [Triple.Config](Triple.Config.md): Configuration for a Triple client.
  - [Triple.Error](Triple.Error.md): A structured error returned (or raised, via the `!` functions) for every
failure mode this library can produce: local validation failures, Triple
API error responses, and transport-level failures.
  - [Triple.RateLimiter](Triple.RateLimiter.md): Optional, opt-in client-side rate limiting.
  - [Triple.Telemetry](Triple.Telemetry.md): `:telemetry` events emitted by this library. Attach handlers the usual
way to get logging, metrics, or tracing for free.
  - [Triple.Util](Triple.Util.md): Small stateless helpers shared across the Triple client.

