Credit Account Identification
This document explains how to identify and correlate a customer's credit accounts a) within the same credit report, and b) across reports that are pulled at different times.
Duplicate Accounts
The CREDIT_LIABILITY
array lists the credit accounts that the customer is responsible for. Each bureau contributes an entry for every account that it's aware of. Thus, if you're generating a report to which multiple bureaus have contributed (a 2B or 3B report), then the same account will appear multiple times within the report, once for each bureau and one more time as a "merged" account.
For example, here's the same account as it appears three times in an Experian/Equifax 2B report:
{
"CREDIT_RESPONSE": {
"CREDIT_LIABILITY": [ {
"@CreditTradeReferenceID": "Primary",
"@_AccountIdentifier": "35469083265902",
"@ArrayAccountIdentifier": "b7359f467845561640b337e14c164721",
"@TradelineHashComplex": "0e754b05d60c31bda5420294c7a536b8",
"@TradelineHashSimple": "38401ec5f7ff1c11559c8dcb23dc363e",
"CREDIT_REPOSITORY": [
{ "@_SourceType": "Equifax" },
{ "@_SourceType": "Experian" }
]
},
{
"@CreditTradeReferenceID": "Secondary",
"@_AccountIdentifier": "35469083265902",
"@ArrayAccountIdentifier": "b7359f467845561640b337e14c164721",
"@TradelineHashComplex": "da54202b54b805d60c31ba53694c70e7",
"@TradelineHashSimple": "63c5f7f9c8e4f1c11538501edcb23dc3",
"CREDIT_REPOSITORY": { "@_SourceType": "Equifax" }
},
{
"@CreditTradeReferenceID": "Secondary",
"@_AccountIdentifier": "354690XXXXXXXX",
"@ArrayAccountIdentifier": "b7359f467845561640b337e14c164721",
"@TradelineHashComplex": "02b31ba53c70e76945da544b8205d60c",
"@TradelineHashSimple": "b23dc33c5f7f9c8e4f1c1601edc15385",
"CREDIT_REPOSITORY": { "@_SourceType": "Experian" }
} ]
}
}
Regard the values of the @CreditTradeReferenceID
and CREDIT_REPOSITORY
properties (we'll look at the other properties later):
-
In the first entry, the
@CreditTradeReferenceID
isPrimary
andCREDIT_REPOSITORY
contains references toExperian
andEquifax
. This means that the entry is a merge of the Experian and Equifax versions of the account. -
In the other two entries,
@CreditTradeReferenceID
isSecondary
andCREDIT_REPOSITORY
refers to a single bureau. These entries are versions of the account that are presented without modification from the named bureau.
Note, however, that Primary
doesn't always mean "merged". In a 1B report, there's a single Primary
entry that presents the version from the single bureau:
{
"CREDIT_RESPONSE": {
"CREDIT_LIABILITY": [ {
"@CreditTradeReferenceID": "Primary",
"@_AccountIdentifier": "474681XXXXXX",
"@ArrayAccountIdentifier": "8181e44a794fd52a0a35475a28025357",
"@TradelineHashComplex": "b0b888174b5c5ddd14992c75f692e2e0",
"@TradelineHashSimple": "c1400e042df92f3da0ea90011e7a4e89",
"CREDIT_REPOSITORY": { "@_SourceType": "Experian" }
} ]
}
}
If you want to a generate a list of unique accounts within a credit report regardless of the number of bureaus that have contributed to the report, iterate over the
CREDIT_LIABILITY
array looking for accounts in which@CreditTradeReferenceID
isPrimary
.
Account Correlation Within a Report
Every liability object contains two properties that identify the account that it represents, @_AccountIdentifier
and @ArrayAccountIdentifier
.
@_AccountIdentifier
is the account identifier as it's presented by the bureau. Some bureaus (and some creditors) obfuscate the account identifier, so while you can present the value of this property to the customer, you can't use it to reliably correlate accounts across bureaus. For example, the@_AccountIdentifier
values that we saw in an earlier example differ between Experian and Equifax:
{
"CREDIT_RESPONSE": {
"CREDIT_LIABILITY": [ {
"@_AccountIdentifier": "35469083265902",
"CREDIT_REPOSITORY": { "@_SourceType": "Equifax" }
},
{
"@_AccountIdentifier": "354690XXXXXXXX",
"CREDIT_REPOSITORY": { "@_SourceType": "Experian" }
} ]
}
}
- To make up for the inconstancy of
@_AccountIdentifier
, Array introduced the@ArrayAccountIdentifier
property as a value that can be used to correlate accounts across bureaus. If two or more liability objects in the same credit report have the same@ArrayAccountIdentifier
value, then the objects represent the same account. This applies to merged accounts, as well: Note that all three entries from our previous example have the same@ArrayAccountIdentifier
value and thus represent the same account:
{
"CREDIT_RESPONSE": {
"CREDIT_LIABILITY": [ {
"@CreditTradeReferenceID": "Primary",
"@ArrayAccountIdentifier": "b7359f467845561640b337e14c164721",
"CREDIT_REPOSITORY": [
{ "@_SourceType": "Equifax" },
{ "@_SourceType": "Experian" }
]
},
{
"@CreditTradeReferenceID": "Secondary",
"@ArrayAccountIdentifier": "b7359f467845561640b337e14c164721",
"CREDIT_REPOSITORY": { "@_SourceType": "Equifax" }
},
{
"@CreditTradeReferenceID": "Secondary",
"@ArrayAccountIdentifier": "b7359f467845561640b337e14c164721",
"CREDIT_REPOSITORY": { "@_SourceType": "Experian" }
} ]
}
}
The @ArrayAccountIdentifier
value can also be used to correlate accounts across time, although it's possible for it to give a "false negative" (different values for the same account). We'll look at this more in the next section.
Account Correlation Across Reports
While identical @ArrayAccountIdentifier
values are a reliable indicator of identity within a credit report, it's possible that an account's value could change over time, particularly if the customer has initiated a dispute. If you're trying to correlate accounts across credit reports that were pulled at different times, and the @ArrayAccountIdentifier
doesn't yield a hit, you should try two other Array-generated values:
-
@TradelineHashComplex
is a permanent and unique identifier for an account that's owned by the customer and reported by a particular bureau. You can't use this value to correlate accounts within a report: If an account is reported by all three bureaus, the multipleCREDIT_LIABILTY
entries that represent the account will have uniqueTradelineHashComplex
values. -
If the
@TradelineHashComplex
property is missing or if it doesn't yield a match across reports, you can fall back on the@TradelineHashSimple
property. The simple hash isn't as foolproof as the complex hash, so you may want to compare other properties (@_AccountOpenedDate
, for example) as well.
Updated 3 months ago