Data Category | Event Field/Column Name | Data Type | Description | Applicability | Sample Value | Notes |
---|---|---|---|---|---|---|
Key | TenantId | VARCHAR(32) | Unique ID associated with each Quavo client. | ALWAYS | qvo-stg | |
Key | Tenant | VARCHAR(64) | A tenant is a Quavo customer that uses QFD. Each tenant is assigned a unique Tenant ID. | ALWAYS | Default | |
Key | ClientId | VARCHAR(64) | A unique ID representing a single client. | ALWAYS | Default | |
Key | Client | VARCHAR(64) | A client is a Quavo customer that uses QFD through a relationship with a Quavo tenant. Each client is assigned a unique Client ID. | ALWAYS | Default | |
Claim Details | ClaimType | VARCHAR(64) | See Transaction Type. | CONDITIONAL | Card-Pinless | |
Claim Details | ClaimCategory | VARCHAR(64) | General categorization of the claim. For a more precise description, see Claim Reason. | CONDITIONAL | Fraud | |
Claim Details | ClaimReason | VARCHAR(64) | Identifies the specific reason associated with the claim. | CONDITIONAL | Stolen | |
Transaction Details | Network | VARCHAR(64) | A network is a company that provides the communication system between a merchant and a card issuer in order to process transactions. For more details, see Acquirer Networks. | CONDITIONAL | Mastercard, Visa | |
Key | ClaimId | VARCHAR(32) | Unique ID associated with a claim. Format: YYMMDD<Ordinal Number>"C" Example: 2405230003C | ALWAYS | 2306060014C | |
Key | DisputeId | VARCHAR(32) | Unique ID associated with a disputed transaction. Format: YYMMDD#####"D" | ALWAYS | 2306060014D | |
Claim Details | CustomerContactDate | DATE | Represents the date that the claim was received from the accountholder. | CONDITIONAL | 2023-09-09 | |
Dispute Details | DisputeStatus | VARCHAR | Represents the current stage or step of a particular process or lifecycle, such as a claim or dispute. | ALWAYS | Pending-Response | |
Dispute Details | DisputeAmount | NUMBER | The current amount in dispute, accounting for any recoveries or adjustments. | ALWAYS | 123.45 | |
Dispute Details | Reopened | BOOLEAN | Identifies if the claim or dispute was reopened for an additional investigation with "True" or "False" | CONDITIONAL | True | Only applicable when a dispute has been reopened after being denied. |
Recovery Details | Cycle1Status | Status of recovery attempt and response for the specified cycle ("Not Attempted", "Pending", "Completed"). | ALWAYS | Completed, Pending Response, Not Attempted | ||
Recovery Details | Cycle1ActionDate | Date a recovery attempt for the specified recovery cycle was executed. | CONDITIONAL | 2023-09-09 | ||
Recovery Details | Cycle1Action | Type of recovery attempt made for the specified recovery cycle. | CONDITIONAL | Chargeback, Request Submitted, Review Initiated | ||
Recovery Details | Cycle1ActionAmount | Amount of recovery attempt. | CONDITIONAL | 123.59 | ||
Recovery Details | Cycle1ResponseDate | Date a response to the recovery attempt was received for the specified recovery cycle. | CONDITIONAL | 2023-09-09 | Only applicable when a response in this cycle has been received. | |
Recovery Details | Cycle1Response | Response to the recovery attempt for the specified recovery cycle. | CONDITIONAL | Full Amount Recovered, Partial Amount Recovered, No Funds Recovered, Acquirer Declined, Acquirer Accepted Full, Acquirer Accepted Partial, Rapid Dispute Resolution, Inbound Pre-Arbitration | Only applicable when a response in this cycle has been received. | |
Recovery Details | Cycle1ResponseAmount | Amount of recovery attempt. | CONDITIONAL | 123.59 | ||
Recovery Details | Cycle1Outcome | Result of the recovery attempt, based on the response received for the specified recovery cycle. | ALWAYS | Recovered, Not Recovered, Not Attempted | ||
Recovery Details | Cycle2Status | Status of recovery attempt and response for the specified cycle ("Not Attempted", "Pending", "Completed"). | ALWAYS | Completed, Pending Response, Not Attempted | ||
Recovery Details | Cycle2ActionDate | Date a recovery attempt for the specified recovery cycle was executed. | CONDITIONAL | 2023-09-09 | ||
Recovery Details | Cycle2Action | Type of recovery attempt made for the specified recovery cycle. | CONDITIONAL | Pre-Arbitration, Request Submitted, Review Initiated | ||
Recovery Details | Cycle2ActionAmount | Amount of recovery attempt. | CONDITIONAL | 123.59 | ||
Recovery Details | Cycle2ResponseDate | Date a response to the recovery attempt was received for the specified recovery cycle. | CONDITIONAL | 2023-09-09 | Only applicable when a response in this cycle has been received. | |
Recovery Details | Cycle2Response | Response to the recovery attempt for the specified recovery cycle. | CONDITIONAL | Full Amount Recovered, Partial Amount Recovered, No Funds Recovered, Acquirer Declined, Acquirer Accepted Full, Acquirer Accepted Partial, Acquirer Accepted Full, Inbound Arbitration, Acquirer Declined | Only applicable when a response in this cycle has been received. | |
Recovery Details | Cycle2ResponseAmount | Amount specified in response. | CONDITIONAL | 123.59 | ||
Recovery Details | Cycle2Outcome | Result of the recovery attempt, based on the response received for the specified recovery cycle. | ALWAYS | Recovered, Not Recovered, Not Attempted | ||
Recovery Details | Cycle3Status | Status of recovery attempt and response for the specified cycle ("Not Attempted", "Pending", "Completed"). | ALWAYS | Completed, Pending Response, Not Attempted | ||
Recovery Details | Cycle3ActionDate | Date a recovery attempt for the specified recovery cycle was executed. | CONDITIONAL | 2023-09-09 | ||
Recovery Details | Cycle3Action | Type of recovery attempt made for the specified recovery cycle. | CONDITIONAL | Pre-Arbitration, Request Submitted, Review Initiated | ||
Recovery Details | Cycle3ActionAmount | Amount of recovery attempt. | CONDITIONAL | 123.59 | ||
Recovery Details | Cycle3ResponseDate | Date a response to the recovery attempt was received for the specified recovery cycle. | CONDITIONAL | 2023-09-09 | Only applicable when a response in this cycle has been received. | |
Recovery Details | Cycle3Response | Response to the recovery attempt for the specified recovery cycle. | CONDITIONAL | Full Amount Recovered, Partial Amount Recovered, No Funds Recovered, Arbitration Won, Arbitration Lost, Arbitration Split, Arbitration Accepted | Only applicable when a response in this cycle has been received. | |
Recovery Details | Cycle3ResponseAmount | Amount specified in response. | CONDITIONAL | 123.59 | ||
Recovery Details | Cycle3Outcome | Result of the recovery attempt, based on the response received for the specified recovery cycle. | ALWAYS | Recovered, Not Recovered, Not Attempted | ||
Recovery Details | OverallOutcome | Result of all recovery attempts. | ALWAYS | Recovered, Not Recovered, Not Attempted |
SQL
For greater transparency, and to provide clients with a “jumping off” point for their own queries, the SQL used to generated this view is provided below.
select d.tenantid, tenant.name, d.clientid, client.commonname, c.claimtype, c.reasontype, c.reason, d.acquirernetwork, d.claimid, d.disputeid, (CASE WHEN d.status LIKE '%Resolved%' THEN 'Resolved' ELSE 'Open' END) as statustype, d.status, c.customercontactdate, TO_TIMESTAMP_TZ(d.createdatetime::varchar || ' +0000'), TO_TIMESTAMP_TZ(d.resolveddatetime::varchar || ' +0000'), d.disputeamount, (case when r1.actionname is null then 'Pending Response' else 'Completed' end) as cycle1Status, a1.recoveryoptionlabel as cycle1recoveryoption, (case when a1.actionname = 'Dispute Submitted' then 'Chargeback' else a1.actionname end) as Action, TO_TIMESTAMP_TZ(a1.performedondatetime::varchar || ' +0000'), a1.amount, r1.actionname, TO_TIMESTAMP_TZ(r1.performedondatetime::varchar || ' +0000'), r1.amount, (case when r1.actionname IN ('No Funds Recovered', 'Response Received - No Recovery', 'Dispute Declined', 'Pre-Arbitration Received') then 'No Recovery' when r1.actionname IN ('Full Amount Recovered', 'Rapid Dispute Resolution', 'Response Received - Full Amount Recovered', 'Dispute Accepted - Full', 'No Response Received', 'Representment Not Received') then 'Recovered' when r1.actionname IN ('Partial Amount Recovered', 'Response Received - Partial Amount Recovered', 'Dispute Accepted - Partial') then 'Recovered' else 'N/A' -- recalls, rejects end) as cycle1Outcome, (case when a2.actionname is null then 'Not Attempted' when r2.actionname is null then 'Pending Response' else 'Completed' end) as Cycle2Status, a2.recoveryoptionlabel as cycle2recoveryoption, (case when a2.actionname IN ('Inbound Pre-Arbitration Declined', 'Pre-Arbitration Submitted') then 'Pre-Arbitration' when a2.actionname = 'Arbitration Chargeback Submitted' then 'Arbitration Chargeback' else a2.actionname end) as Action, TO_TIMESTAMP_TZ(a2.performedondatetime::varchar || ' +0000'), a2.amount, r2.actionname, TO_TIMESTAMP_TZ(r2.performedondatetime::varchar || ' +0000'), r2.amount, (case when r2.actionname IN ('Inbound Arbitration Received', 'No Funds Recovered', 'Pre-Arbitration Declined', 'Response Received - No Recovery') then 'No Recovery' when r2.actionname IN ('Full Amount Recovered', 'Inbound Pre-Arbitration Response Accepted', 'Pre-Arbitration Accepted - Full', 'Response Received - Full Amount Recovered', 'No Inbound Arbitration Received', 'No Pre-Arbitration Response Received') then 'Recovered' when r2.actionname IN ('Partial Amount Recovered', 'Pre-Arbitration Accepted - Partial', 'Response Received - Partial Amount Recovered') then 'Recovered' else 'N/A' end) as Cycle2Outcome, (case when a3.actionname is null then 'Not Attempted' when r3.actionname is null then 'Pending Response' else 'Completed' end) as Cycle3Status, a3.recoveryoptionlabel as cycle3recoveryoption, (case when a3.actionname IN ('Pre-Arbitration Escalated', 'Arbitration Submitted') then 'Arbitration' else a3.actionname end) as Action, TO_TIMESTAMP_TZ(a3.performedondatetime::varchar || ' +0000'), a3.amount, r3.actionname, TO_TIMESTAMP_TZ(r3.performedondatetime::varchar || ' +0000'), r3.amount, (case when r3.actionname IN ('Arbitration Lost', 'No Funds Recovered', 'Response Received - No Recovery') then 'No Recovery' when r3.actionname IN ('Arbitration Accepted', 'Arbitration Won', 'Full Amount Recovered', 'Response Received - Full Amount Recovered') then 'Recovered' when r3.actionname IN ('Arbitration Split', 'Partial Amount Recovered', 'Response Received - Partial Amount Recovered') then 'Recovered' else 'N/A' end) as Cycle3Outcome, (case when Cycle3Outcome = 'Recovered' or Cycle2Outcome = 'Recovered' or Cycle1Outcome = 'Recovered' then 'Recovered' when r1.actionname is null then 'Not Attempted' else 'No Recovery' end) as OverallOutcome from dispute as d join claim as c on d.tenantid = c.tenantid and d.claimid = c.claimid join tenant as tenant on d.tenantid = tenant.tenantid join client as client on d.tenantid = client.tenantid and d.clientid = client.clientid left join recoveryaction as a1 on a1.tenantid = d.tenantid and a1.disputeid = d.disputeid and a1.recoveryoptionlabel not in ('Process Debit', 'Process Return (Debit)') and (a1.actionname = 'Dispute Submitted' or a1.actionname in ('Request Submitted', 'Review Initiated') and a1.cycle = '1') and a1.performedondatetime = (select max(performedondatetime) from recoveryaction as b where b.tenantid = d.tenantid and b.disputeid = d.disputeid and (b.actionname = 'Dispute Submitted' or b.actionname in ('Request Submitted', 'Review Initiated') and b.cycle = '1') and b.recoveryoptionlabel not in ('Process Debit', 'Process Return (Debit)')) left join recoveryaction as r1 on r1.tenantid = d.tenantid and r1.disputeid = d.disputeid and r1.actionname in ('Full Amount Recovered', 'No Funds Recovered', 'Partial Amount Recovered', 'Response Received - Partial Amount Recovered', 'Response Received - No Recovery', 'Response Received - Full Amount Recovered', 'Inbound Arbitration Received', 'Rapid Dispute Resolution', 'Dispute Accepted - Partial', 'Dispute Accepted - Full', 'Dispute Declined', 'Pre-Arbitration Received', 'No Response Received', 'Representment Not Received', 'Chargeback Rejected', 'Dispute Recalled') and r1.performedondatetime = (select min(performedondatetime) from recoveryaction as b where b.tenantid = d.tenantid and b.disputeid = d.disputeid and b.actionname in ('Full Amount Recovered', 'No Funds Recovered', 'Partial Amount Recovered', 'Response Received - Partial Amount Recovered', 'Response Received - No Recovery', 'Response Received - Full Amount Recovered', 'Inbound Arbitration Received', 'Rapid Dispute Resolution', 'Dispute Accepted - Partial', 'Dispute Accepted - Full', 'Dispute Declined', 'Pre-Arbitration Received', 'No Response Received', 'Representment Not Received', 'Chargeback Rejected', 'Dispute Recalled') and b.performedondatetime >= a1.performedondatetime) left join recoveryaction as a2 on a2.tenantid = d.tenantid and a2.disputeid = d.disputeid and a2.recoveryoptionlabel not in ('Process Debit', 'Process Return (Debit)') and (a2.actionname IN ('Arbitration Chargeback Submitted', 'Pre-Arbitration Submitted', 'Inbound Pre-Arbitration Declined') or a2.actionname in ('Request Submitted', 'Review Initiated') and a2.cycle = '2') and a2.performedondatetime = (select max(performedondatetime) from recoveryaction as b where b.tenantid = d.tenantid and b.disputeid = d.disputeid and (b.actionname IN ('Arbitration Chargeback Submitted', 'Pre-Arbitration Submitted', 'Inbound Pre-Arbitration Declined') or b.actionname in ('Request Submitted', 'Review Initiated') and b.cycle = '2') and b.recoveryoptionlabel not in ('Process Debit', 'Process Return (Debit)')) left join recoveryaction as r2 on r2.tenantid = d.tenantid and r2.disputeid = d.disputeid and r2.actionname in ('Full Amount Recovered', 'No Funds Recovered', 'Partial Amount Recovered', 'Response Received - Partial Amount Recovered', 'Response Received - No Recovery', 'Response Received - Full Amount Recovered', 'Inbound Pre-Arbitration Response Accepted', 'Pre-Arbitration Accepted - Full', 'Pre-Arbitration Accepted - Partial', 'Inbound Arbitration Received', 'Pre-Arbitration Declined', 'No Inbound Arbitration Received', 'No Pre-Arbitration Response Received') and r2.performedondatetime = (select min(performedondatetime) from recoveryaction as b where b.tenantid = d.tenantid and b.disputeid = d.disputeid and b.actionname in ('Full Amount Recovered', 'No Funds Recovered', 'Partial Amount Recovered', 'Response Received - Partial Amount Recovered', 'Response Received - No Recovery', 'Response Received - Full Amount Recovered', 'Inbound Pre-Arbitration Response Accepted', 'Pre-Arbitration Accepted - Full', 'Pre-Arbitration Accepted - Partial', 'Inbound Arbitration Received', 'Pre-Arbitration Declined', 'No Inbound Arbitration Received', 'No Pre-Arbitration Response Received') and b.performedondatetime >= a2.performedondatetime) left join recoveryaction as a3 on a3.tenantid = d.tenantid and a3.disputeid = d.disputeid and a3.recoveryoptionlabel not in ('Process Debit', 'Process Return (Debit)') and (a3.actionname IN ('Pre-Arbitration Escalated', 'Arbitration Submitted') or a3.actionname in ('Request Submitted', 'Review Initiated') and a3.cycle = '3') and a3.performedondatetime = (select max(performedondatetime) from recoveryaction as b where b.tenantid = d.tenantid and b.disputeid = d.disputeid and (b.actionname IN ('Pre-Arbitration Escalated', 'Arbitration Submitted') or b.actionname in ('Request Submitted', 'Review Initiated') and b.cycle = '3') and b.recoveryoptionlabel not in ('Process Debit', 'Process Return (Debit)')) left join recoveryaction as r3 on r3.tenantid = d.tenantid and r3.disputeid = d.disputeid and r3.actionname in ('Full Amount Recovered', 'No Funds Recovered', 'Partial Amount Recovered', 'Response Received - Partial Amount Recovered', 'Response Received - No Recovery', 'Response Received - Full Amount Recovered', 'Arbitration Won', 'Arbitration Lost', 'Arbitration Split', 'Arbitration Accepted') and r3.performedondatetime = (select min(performedondatetime) from recoveryaction as b where b.tenantid = d.tenantid and b.disputeid = d.disputeid and b.actionname in ('Full Amount Recovered', 'No Funds Recovered', 'Partial Amount Recovered', 'Response Received - Partial Amount Recovered', 'Response Received - No Recovery', 'Response Received - Full Amount Recovered', 'Arbitration Won', 'Arbitration Lost', 'Arbitration Split', 'Arbitration Accepted') and b.performedondatetime >= a3.performedondatetime) --NOTES: Excludes unduly enriched (debits to claimant)
Change Log
Date | Change Summary |
---|---|
12/10/2024 | StickRate view deprecated in favor of Recovery view for performance optimization. |
12/11/2024 | SQL referenced added. |