# Brink mapping for `curated.pos_tenders`

## Main staging sources

- `staging.brink_settings_get_tenders`

## Mapping groups

- Business property mappings describe how Brink tender content is mapped or could be mapped into curated business fields.
- Technical and ETL property mappings describe lineage, source reconciliation, tenant scoping, and ingestion metadata.

## Business property mappings

| Curated Column | Brink Staging Table | Brink Property Path | Current mapping | Status | Notes |
|---|---|---|---|---|---|
| `id` | `staging.brink_settings_get_tenders` | `tender_id` | `NULL` | `Not mapped` | Direct tender ID. |
| `usernumber` | `N/A` | `N/A` | `NULL` | `Not mapped` | No user-visible tender number is documented. |
| `name` | `staging.brink_settings_get_tenders` | `name` | `NULL` | `Not mapped` | Direct tender name. |
| `cash` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Requires a derived cash-like flag from Brink tender type. |
| `gcert` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Requires a derived gift-certificate/gift-card flag from Brink tender type. |
| `"change"` | `staging.brink_settings_get_tenders` | `allow_change` | `NULL` | `Not mapped` | Direct change behavior flag. |
| `reportas` | `staging.brink_settings_get_tenders` | `reconciliation_method` | `NULL` | `Not mapped` | Best documented reporting/reconciliation classification. |
| `house` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Requires a derived house-account style flag from Brink tender type. |
| `active` | `staging.brink_settings_get_tenders` | `active` | `NULL` | `Not mapped` | Direct active flag. |
| `tips` | `staging.brink_settings_get_tenders` | `allow_tips` | `NULL` | `Not mapped` | Direct tip-support flag. |
| `cardtype` | `staging.brink_settings_get_tenders` | `card_type` | `NULL` | `Not mapped` | Direct card type classification. |
| `fcurrncyid` | `N/A` | `N/A` | `NULL` | `Not mapped` | No foreign-currency identifier is documented. |
| `accntrcvbl` | `N/A` | `N/A` | `NULL` | `Not mapped` | No accounts-receivable flag is documented. |
| `cashcard` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Requires a derived hybrid tender-family mapping if needed. |
| `ischeck` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Requires a derived check-tender flag from Brink tender type. |
| `external` | `staging.brink_settings_get_tenders` | `requires_authorization` | `NULL` | `Not mapped` | Closest documented indicator of an externally authorized tender flow. |
| `debit` | `staging.brink_settings_get_tenders` | `card_type` | `NULL` | `Not mapped` | Requires a derived debit flag from Brink card type. |
| `giftcard` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Requires a derived gift-card flag from Brink tender type. |
| `iscredtcrd` | `staging.brink_settings_get_tenders` | `card_type` | `NULL` | `Not mapped` | Requires a derived credit-card flag from Brink card type. |
| `roundactiv` | `N/A` | `N/A` | `NULL` | `Not mapped` | No rounding-active flag is documented. |
| `roundto` | `N/A` | `N/A` | `NULL` | `Not mapped` | No rounding increment is documented. |
| `roundmthd` | `N/A` | `N/A` | `NULL` | `Not mapped` | No rounding method is documented on tenders. |
| `ebt` | `N/A` | `N/A` | `NULL` | `Not mapped` | No EBT flag is documented. |
| `ebttype` | `N/A` | `N/A` | `NULL` | `Not mapped` | No EBT subtype is documented. |
| `tdrsurch` | `N/A` | `N/A` | `NULL` | `Not mapped` | No tender surcharge field is documented. |
| `disloyalty` | `N/A` | `N/A` | `NULL` | `Not mapped` | No disable-loyalty flag is documented. |
| `iscampus` | `N/A` | `N/A` | `NULL` | `Not mapped` | No campus-payment flag is documented. |
| `payment_family` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Derived standardized family from Brink tender type and card type. |
| `payment_family_name` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Derived readable payment family from Brink tender type and card type. |
| `is_digital` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Derived boolean from standardized payment-family mapping. |
| `is_cash_equivalent` | `staging.brink_settings_get_tenders` | `tender_type` | `NULL` | `Not mapped` | Derived boolean from standardized payment-family mapping. |
| `processor_name` | `N/A` | `N/A` | `NULL` | `Not mapped` | No processor name is documented on the tender master. |

## Technical and ETL property mappings

| Curated Column | Brink Staging Table | Brink Property Path | Current mapping | Status | Notes |
|---|---|---|---|---|---|
| `tender_key` | `N/A` | `N/A` | `NULL` | `Not mapped` | Warehouse-generated key. |
| `source_system` | `N/A` | `N/A` | `constant 'brink_pos'` | `Derived constant` | Warehouse constant, not a Brink API field. |
| `source_tender_id` | `staging.brink_settings_get_tenders` | `tender_id` | `NULL` | `Not mapped` | Direct Brink source ID. |
| `tenant_key` | `N/A` | `N/A` | `NULL` | `Not mapped` | Warehouse-generated tenant key. |
| `tenant_name` | `N/A` | `N/A` | `parameter @tenant_id` | `ETL context` | Tenant metadata is outside the documented Brink staging payloads. |
| `effective_from_utc` | `N/A` | `N/A` | `NULL` | `Not mapped` | No effective-start timestamp is documented on tenders. |
| `effective_to_utc` | `N/A` | `N/A` | `NULL` | `Not mapped` | No effective-end timestamp is documented on tenders. |
| `is_current` | `N/A` | `N/A` | `NULL` | `Not mapped` | Warehouse SCD field. |
| `_etl_batch_id` | staging.brink_settings_get_tenders | _etl_batch_id | `_etl_batch_id` | `Mapped` | ETL metadata propagated from staging. |
| `_etl_source_type` | staging.brink_settings_get_tenders | _etl_source_type | `_etl_source_type` | `Mapped` | ETL metadata propagated from staging. |
| `_etl_ingested_at` | staging.brink_settings_get_tenders | _etl_ingested_at_utc | `_etl_ingested_at_utc AS _etl_ingested_at` | `Mapped` | ETL metadata propagated from staging. |

## Portal and sample validation

| Curated field | Additional validated source | How to use it |
|---|---|---|
| `name` | `temp/GetTenders_WhenConfigured_CallsRealBrinkEndpoint.xml -> Tenders[].Name` | Sample payload confirms the tender name exists in real Brink responses. |
| `tips` | `Settings.GetTenders -> Tenders[].MaxTipPercent` | Brink contract exposes richer tip configuration than the current boolean mapping. |
| `cash` | `Settings.GetTenders -> Tenders[].OpenDrawer` | This is a useful additional behavioral signal for cash-like tenders. |
| `active` | `Settings.GetTenders -> Tenders[].SignatureCapture / RequiresAuthorization / DefaultAmount / VarianceAmount` | Sample payloads and WSDL confirm extra tender configuration fields that can support future tender-family normalization. |
