pixellint

LiveRamp refresh needs a Placement ID, envelope type, and envelope value

Refresh is not retrieve. it is 19 for an ATS envelope or 24 for Meta-scoped. iv is the envelope string from the retrieve call, not the original hash. Cookie sync stays attributed.

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

Retrieve uses it=4 hashed email. Refresh documents it=19 ATS and it=24 Meta-scoped.

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

What this pack matches

Hosts
api.rlcdn.com
Paths
/api/identity/v2/envelope/refresh
Vendor docs
developers.liveramp.com/authenticatedtraffic-api/docs/7-implement-the-ats-refresh-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-refresh.param.pid.missing
vendor.liveramp-envelope-refresh.param.pid.empty
vendor.liveramp-envelope-refresh.param.pid.invalid
docs
it required It is the envelope type. LiveRamp documents `19` ATS envelopes and `24` Meta-scoped envelopes. Retrieve uses identifier types 4, 11, and 15 instead. Fix: Send `it=19` for an ATS envelope, or `it=24` for a Meta-scoped envelope. vendor.liveramp-envelope-refresh.param.it.missing
vendor.liveramp-envelope-refresh.param.it.empty
vendor.liveramp-envelope-refresh.param.it.invalid
docs
iv required It is the stored envelope value, not the original hashed identifier. Fix: Send `iv` with the envelope string returned by the retrieve call. vendor.liveramp-envelope-refresh.param.iv.missing
vendor.liveramp-envelope-refresh.param.iv.empty
docs
ct optional It is the consent type. LiveRamp documents `4` TCF v2 and `3` CCPA. Fix: Send `ct=4` with a TCF string in `cv`, or `ct=3` for CCPA. vendor.liveramp-envelope-refresh.param.ct.empty
vendor.liveramp-envelope-refresh.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 mobile SDK. Fix: Send `atype=2` from an API call, or `atype=3` from a server. vendor.liveramp-envelope-refresh.param.atype.empty
vendor.liveramp-envelope-refresh.param.atype.invalid
docs
cv optional LiveRamp accepts cv as the consent string associated with ct. vendor.liveramp-envelope-refresh.param.cv.empty docs
gpp optional LiveRamp accepts gpp as the GPP consent string. vendor.liveramp-envelope-refresh.param.gpp.empty docs
gpp_sid optional LiveRamp documents the supported US GPP section identifiers. vendor.liveramp-envelope-refresh.param.gpp_sid.empty
vendor.liveramp-envelope-refresh.param.gpp_sid.invalid
docs
consent_value_required required A selected TCF or CCPA consent type needs its consent string. vendor.liveramp-envelope-refresh.consent_value_required docs
gpp_section_required required A GPP consent string needs the matching GPP section ID. vendor.liveramp-envelope-refresh.gpp_section_required docs
gpp_string_required required A GPP section ID needs the matching GPP consent string. vendor.liveramp-envelope-refresh.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-refresh.mobile_sdk_deprecated docs
consent_tcf_structure required The cv consent value must use the structure of its declared consent type. vendor.liveramp-envelope-refresh.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-refresh.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-refresh.consent_positive docs
gpp_SharingNotice required LiveRamp requires SharingNotice values 1 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SharingNotice docs
gpp_SaleOptOutNotice required LiveRamp requires SaleOptOutNotice values 1 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SaleOptOutNotice docs
gpp_SharingOptOutNotice required LiveRamp requires SharingOptOutNotice values 1 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SharingOptOutNotice docs
gpp_TargetedAdvertisingOptOutNotice required LiveRamp requires TargetedAdvertisingOptOutNotice values 1 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_TargetedAdvertisingOptOutNotice docs
gpp_SensitiveDataProcessingOptOutNotice required LiveRamp requires SensitiveDataProcessingOptOutNotice values 0, 1 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SensitiveDataProcessingOptOutNotice docs
gpp_SensitiveDataLimitUseNotice required LiveRamp requires SensitiveDataLimitUseNotice values 0, 1 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SensitiveDataLimitUseNotice docs
gpp_SensitiveDataProcessing required LiveRamp requires SensitiveDataProcessing values 0 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SensitiveDataProcessing docs
gpp_KnownChildSensitiveDataConsents required LiveRamp requires KnownChildSensitiveDataConsents values 0 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_KnownChildSensitiveDataConsents docs
gpp_SaleOptOut required LiveRamp requires SaleOptOut values 2 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SaleOptOut docs
gpp_SharingOptOut required LiveRamp requires SharingOptOut values 2 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_SharingOptOut docs
gpp_TargetedAdvertisingOptOut required LiveRamp requires TargetedAdvertisingOptOut values 2 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_TargetedAdvertisingOptOut docs
gpp_PersonalDataConsents required LiveRamp requires PersonalDataConsents values 0, 2 in the active GPP section. vendor.liveramp-envelope-refresh.gpp_PersonalDataConsents docs
method required The ATS envelope endpoint is published as GET. Complete HTTP capture contract. vendor.liveramp-envelope-refresh.http.method.missing
vendor.liveramp-envelope-refresh.http.method.empty
vendor.liveramp-envelope-refresh.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-refresh.http.headers.origin.missing
vendor.liveramp-envelope-refresh.http.headers.origin.empty
vendor.liveramp-envelope-refresh.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-refresh.http.headers.x-forwarded-for.missing
vendor.liveramp-envelope-refresh.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-refresh.http.headers.x-forwarded-for[].empty
vendor.liveramp-envelope-refresh.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-refresh.http.headers.x-forwarded-for.invalid docs

Validate a payload

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

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

https://api.rlcdn.com/api/identity/v2/envelope/refresh?pid=14&it=4&iv=Alkc6LgKZzbqHvexyq4hyzxp0zQZnIztut2rFKjmcDtSBbM0rttk5pH2qb8iNkyxCO9kYAKg6oM2rt28dbWV6-lt9BxwoPCabDaOUXN3fr2C1qsCeV9H0qcW3wBPbbnTpxFWI0Wnh7WVPFYrCM8FgziDEBwSoYnUMO9wheayikvFSGX3Qsz1lr0QWnj2dHEMhx5V2QEbhkJ2iwH2zLEaKAt5oVa8EwAf59mOQepN3S_CwQk4C5OkgfZYiUXTYwxpDA

cargo install pixellint · npm install pixellint