pixellint

LiveRamp envelopes need a Placement ID, identifier type, and hash

pid is the Placement ID. it is 4 hashed email, 11 hashed phone, or 15 custom ID. iv is the hash, or accountId:customId when it is 15. Cookie sync on idsync.rlcdn.com is not this pack. Refresh is vendor/liveramp-envelope-refresh.

it=19 is an envelope type, not an identifier type

LiveRamp documents it=4 hashed email, it=11 hashed phone, and it=15 custom ID. 19 is a response envelope type, not a request identifier type.

Rule: vendor.liveramp-envelope.param.it.invalid

What this pack matches

Hosts
api.rlcdn.com
Paths
/api/identity/v2/envelope, /api/identity/envelope
Vendor docs
developers.liveramp.com/authenticatedtraffic-api/docs/4-call-the-ats-envelope-api

Rules

Codes are stable. A finding in CI, MCP, or the playground lands on the same id.

Field Required What it checks Rule ids Source
pid required It is the LiveRamp Placement ID. Minimum numeric value: -2147483648. Maximum numeric value: 2147483647. Fix: Send `pid` with the Placement ID LiveRamp issued for this property. vendor.liveramp-envelope.param.pid.missing
vendor.liveramp-envelope.param.pid.empty
vendor.liveramp-envelope.param.pid.invalid
docs
it required It is the identifier type. LiveRamp documents `4` hashed email, `11` hashed phone, and `15` custom ID. Fix: Send `it=4` for hashed email, `it=11` for hashed phone, or `it=15` for a custom ID. vendor.liveramp-envelope.param.it.missing
vendor.liveramp-envelope.param.it.empty
vendor.liveramp-envelope.param.it.invalid
docs
iv required It is the hashed identifier, or `ANA_ID:CUSTOM_ID` when `it` is 15. Fix: Send `iv` with the hashed email, hashed phone, or `accountId:customId`. vendor.liveramp-envelope.param.iv.missing
vendor.liveramp-envelope.param.iv.empty
vendor.liveramp-envelope.param.iv.invalid
docs
ct optional It is the consent type. LiveRamp documents `4` TCF v2 and `3` CCPA. GPP traffic can use `gpp` and `gpp_sid` instead. Fix: Send `ct=4` with a TCF string in `cv`, or `ct=3` for CCPA. vendor.liveramp-envelope.param.ct.empty
vendor.liveramp-envelope.param.ct.invalid
docs
atype optional It is the implementation source. LiveRamp documents `1` ATS.js, `2` ATS API, `3` server-to-server, and `4` the deprecated mobile SDK. Fix: Send `atype=2` from an API call, or `atype=3` from a server. vendor.liveramp-envelope.param.atype.empty
vendor.liveramp-envelope.param.atype.invalid
docs
cv optional LiveRamp accepts cv as the consent string associated with ct. vendor.liveramp-envelope.param.cv.empty docs
gpp optional LiveRamp accepts gpp as the GPP consent string. vendor.liveramp-envelope.param.gpp.empty docs
gpp_sid optional LiveRamp documents the supported US GPP section identifiers. vendor.liveramp-envelope.param.gpp_sid.empty
vendor.liveramp-envelope.param.gpp_sid.invalid
docs
consent_value_required required A selected TCF or CCPA consent type needs its consent string. vendor.liveramp-envelope.consent_value_required docs
gpp_section_required required A GPP consent string needs the matching GPP section ID. vendor.liveramp-envelope.gpp_section_required docs
gpp_string_required required A GPP section ID needs the matching GPP consent string. vendor.liveramp-envelope.gpp_string_required docs
mobile_sdk_deprecated recommended LiveRamp sunset the ATS Mobile SDK on September 30, 2026. Migrate this implementation source to the ATS API. vendor.liveramp-envelope.mobile_sdk_deprecated docs
email_hash_format required Email identifier type 4 requires an MD5, SHA1, or SHA256 email digest. Each it occurrence selects the corresponding iv occurrence. vendor.liveramp-envelope.email_hash_format docs
phone_hash_format required Phone identifier type 11 requires a SHA1 phone digest. Each it occurrence selects the corresponding iv occurrence. vendor.liveramp-envelope.phone_hash_format docs
custom_id_format required Custom identifier type 15 requires ANA_ID:CUSTOM_ID with both parts present. Each it occurrence selects the corresponding iv occurrence. vendor.liveramp-envelope.custom_id_format docs
identifier_pair_count required Each identifier type needs one corresponding identifier value. Send equal numbers of it and iv parameters. vendor.liveramp-envelope.identifier_pair_count docs
consent_tcf_structure required The cv consent value must use the structure of its declared consent type. vendor.liveramp-envelope.consent_tcf_structure docs
consent_us_privacy_structure required The cv consent value must use the structure of its declared consent type. vendor.liveramp-envelope.consent_us_privacy_structure docs
consent_positive required For TCF consent, LiveRamp requires a positive consent signal for vendor 97 and purpose 1. vendor.liveramp-envelope.consent_positive docs
gpp_SharingNotice required LiveRamp requires SharingNotice values 1 in the active GPP section. vendor.liveramp-envelope.gpp_SharingNotice docs
gpp_SaleOptOutNotice required LiveRamp requires SaleOptOutNotice values 1 in the active GPP section. vendor.liveramp-envelope.gpp_SaleOptOutNotice docs
gpp_SharingOptOutNotice required LiveRamp requires SharingOptOutNotice values 1 in the active GPP section. vendor.liveramp-envelope.gpp_SharingOptOutNotice docs
gpp_TargetedAdvertisingOptOutNotice required LiveRamp requires TargetedAdvertisingOptOutNotice values 1 in the active GPP section. vendor.liveramp-envelope.gpp_TargetedAdvertisingOptOutNotice docs
gpp_SensitiveDataProcessingOptOutNotice required LiveRamp requires SensitiveDataProcessingOptOutNotice values 0, 1 in the active GPP section. vendor.liveramp-envelope.gpp_SensitiveDataProcessingOptOutNotice docs
gpp_SensitiveDataLimitUseNotice required LiveRamp requires SensitiveDataLimitUseNotice values 0, 1 in the active GPP section. vendor.liveramp-envelope.gpp_SensitiveDataLimitUseNotice docs
gpp_SensitiveDataProcessing required LiveRamp requires SensitiveDataProcessing values 0 in the active GPP section. vendor.liveramp-envelope.gpp_SensitiveDataProcessing docs
gpp_KnownChildSensitiveDataConsents required LiveRamp requires KnownChildSensitiveDataConsents values 0 in the active GPP section. vendor.liveramp-envelope.gpp_KnownChildSensitiveDataConsents docs
gpp_SaleOptOut required LiveRamp requires SaleOptOut values 2 in the active GPP section. vendor.liveramp-envelope.gpp_SaleOptOut docs
gpp_SharingOptOut required LiveRamp requires SharingOptOut values 2 in the active GPP section. vendor.liveramp-envelope.gpp_SharingOptOut docs
gpp_TargetedAdvertisingOptOut required LiveRamp requires TargetedAdvertisingOptOut values 2 in the active GPP section. vendor.liveramp-envelope.gpp_TargetedAdvertisingOptOut docs
gpp_PersonalDataConsents required LiveRamp requires PersonalDataConsents values 0, 2 in the active GPP section. vendor.liveramp-envelope.gpp_PersonalDataConsents docs
method required The ATS envelope endpoint is published as GET. Complete HTTP capture contract. vendor.liveramp-envelope.http.method.missing
vendor.liveramp-envelope.http.method.empty
vendor.liveramp-envelope.http.method.invalid
docs
headers.origin required LiveRamp requires the origin domain submitted for the Placement privacy review. Presence and serialized-origin syntax are local; placement approval requires account state. Complete HTTP capture contract. Value diagnostic severity: warning. vendor.liveramp-envelope.http.headers.origin.missing
vendor.liveramp-envelope.http.headers.origin.empty
vendor.liveramp-envelope.http.headers.origin.invalid
docs
query.atype optional The API query atype identifies the integration method; value 3 means server-to-server. Complete HTTP capture contract. docs
query.atype[] optional Repeated atype values remain observable for the server-to-server header dependency. Complete HTTP capture contract. docs
headers.x-forwarded-for required LiveRamp requires X-Forwarded-For for server-to-server calls. Require it only when every observed atype occurrence is literal 3. Conflicting modes or unresolved macros do not establish the integration mode. Client identity, trusted proxy selection and Placement-country approval require external context. Complete HTTP capture contract. Applies when {"kind":"all_values_in","params":["query.atype","query.atype[]"],"values":["3"]}. Value diagnostic severity: warning. Native JSON type: string or array. vendor.liveramp-envelope.http.headers.x-forwarded-for.missing
vendor.liveramp-envelope.http.headers.x-forwarded-for.invalid
docs
headers.x-forwarded-for[] optional Repeated X-Forwarded-For lines are retained as normalized array members. Validate the literal chain in each line independently; full macro entries remain unresolved without hiding invalid literal neighbors. Complete HTTP capture contract. Applies when {"kind":"any","conditions":[{"kind":"value_in","param":"query.atype","values":["3"]},{"kind":"value_in","param":"query.atype[]","values":["3"]}]}. Value diagnostic severity: warning. Native JSON type: string. vendor.liveramp-envelope.http.headers.x-forwarded-for[].empty
vendor.liveramp-envelope.http.headers.x-forwarded-for[].invalid
docs
http.headers.x-forwarded-for.invalid recommended Supplied X-Forwarded-For client/proxy entries should be IPv4 or IPv6 addresses. Complete macro entries remain unresolved without hiding invalid literal neighbors. Complete HTTP capture contract. vendor.liveramp-envelope.http.headers.x-forwarded-for.invalid docs

Validate a payload

pixellint validate url "$ARTIFACT" --rulepack vendor/liveramp-envelope

Try this failing payload in the playground. LiveRamp envelope with identifier type 19.

https://api.rlcdn.com/api/identity/v2/envelope?pid=14&it=19&iv=38CFDA7F9B55B7F74B6D3D143CBB7661DA9BFEB4683473A5813B220A571A1E37

cargo install pixellint · npm install pixellint