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.
What this pack matches
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.missingvendor.liveramp-envelope.param.pid.emptyvendor.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.missingvendor.liveramp-envelope.param.it.emptyvendor.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.missingvendor.liveramp-envelope.param.iv.emptyvendor.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.emptyvendor.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.emptyvendor.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.emptyvendor.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.missingvendor.liveramp-envelope.http.method.emptyvendor.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.missingvendor.liveramp-envelope.http.headers.origin.emptyvendor.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.missingvendor.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[].emptyvendor.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