Skip to content
Sandbox

Enrichment

Every field of the Enrichment object returned by create and refresh, and of the stored result returned by a read: type, presence, possible values.

View as Markdown

The Enrichment object is the 200 response of POST /merchant/v1/enrichments and POST …/refresh. The GET read returns the same structure, with usage replaced by retrieval and original.

Top-level fields

FieldTypePresenceDescription
enrichment_idstringalwaysPublic identity of the result, enr_<uuid>. New on each refresh.
merchantobject or nullalwaysThe merchant identity. null when the status is not_found. See Merchant.
enrichmentobjectalwaysThe verdict: status, reason, environment
usageobjectcreate and refreshWhat this call cost
retrievalobjectGET read onlyWhat this read costs
originalobjectGET read onlyWhat the enrichment cost when it happened

enrichment

FieldTypeValues
statusstringresolved, partial, not_found, refresh_recalculated. See Statuses.
reasonstring or nullnull for resolved and refresh_recalculated; otherwise a value from the closed list (no_usable_merchant_identity, missing_required_fields, confidence_below_threshold, …)
environmentstringsandbox or production, the environment of the key that created the result
sourcestringThe origin of the result. Currently always noryo.
customizedbooleanFlags a customised result. Currently always false.

usage (create and refresh)

FieldTypeDescription
billablebooleanThe call is billed. Always false in Sandbox, and on a replay by external_transaction_id.
unitsinteger1 for resolved and refresh_recalculated, 0 otherwise; 0 on a replay by external_transaction_id
deduplicatedbooleantrue if the response comes from economic deduplication
deduplicated_bystring or nullexternal_transaction_id when deduplicated is true, null otherwise
Warning

A replay by Idempotency-Key (Noryo-Idempotency-Replayed: true) returns the memorised body unchanged, usage included. That usage describes the original call, not the replay, which is not billed.

retrieval and original (read)

FieldTypeDescription
retrieval.billablebooleanAlways false
retrieval.unitsintegerAlways 0
original.billablebooleanThe original call was billed
original.unitsintegerThe units of the original call

Examples

A partial result in Production:

{
  "enrichment_id": "enr_3b9c2a71-8f0e-4d6a-9c5b-1e2f3a4b5c6d",
  "merchant": { "name": "Enseigne", "category": "alimentation.restaurant", "location": null, "confidence": 0.62 },
  "enrichment": { "status": "partial", "reason": "confidence_below_threshold", "environment": "production", "source": "noryo", "customized": false },
  "usage": { "billable": false, "units": 0, "deduplicated": false, "deduplicated_by": null }
}
JSON

A replay by external_transaction_id:

{
  "enrichment_id": "enr_ffe80956-cc3e-4e1f-b4b6-724ad231fbb7",
  "merchant": { "name": "McDonald's", "category": "alimentation.restaurant", "location": { "city": "PARIS", "postal_code": "75018" }, "confidence": 0.96 },
  "enrichment": { "status": "resolved", "reason": null, "environment": "production", "source": "noryo", "customized": false },
  "usage": { "billable": false, "units": 0, "deduplicated": true, "deduplicated_by": "external_transaction_id" }
}
JSON

These two examples illustrate the shape; their values do not come from real calls.

Published on 2026-10-08 21:04 UTC (version 1).

Was this page helpful?