Live Reconciliation via API

PRODUCTION API END POINTS:

Single survey: POST: https://api.spectrumsurveys.com/buyers/v2/adjustments/surveys/{surveyId}?operationType=LIVE_RECONCILIATION&reconStatus={1/2} Multiple Survey: POST: https://api.spectrumsurveys.com/buyers/v2/adjustments?operationType=LIVE_RECONCILIATION&reconStatus={1/2}

Change the transaction status to Complete use

  • reconStatus = 1

Change the transaction status to Buyer_Reconciliation_Reject use

  • reconStatus = 2

In live reconciliation, is possible to add for each transaction an additional field that allow the user to add the reason for the the reconciliation. This part is optional.

  • If included, the reason value should be added in "change_reason" and these are the options:

    • Suspected Fraud

    • Respondent Quality (speeding, straightlining, text response...)

    • Ghost Completes

    • Client Rejected

    • Duplicate Respondent

  • Any other variation is accepted and is recorded has Respondent Quality.

Example Single Survey Call:

API:

Change to Complete POST: {url}/adjustments/surveys/:surveyId?operationType=LIVE_RECONCILIATION&reconStatus=1 Change to Buyer_Reconciliation_Reject POST: {url}/adjustments/surveys/:surveyId?operationType=LIVE_RECONCILIATION&reconStatus=2

 

REQUEST PAYLOAD:

[ { "transaction_id": "7lNK5AGrSL3bk5tV4gw0Tr", "change_reason": "Suspected Fraud" // optional }, { "transaction_id": "7dTdSUUWkR9DBs7rUi5jdT" }, { "transaction_id": "5EmEbeX9mEblEpwP6yHG1K" }, { "transaction_id": "6HkYQWFMcIcDOTxfnIi6op" } ]

RESPONSE PAYLOAD:

{ "adjustment_id": "b43ce6a3-9578-4ba6-8cc5-a4add094a352", "summary": { "desiredStatus": {21/33}, "eligible": 2, "rejected": 0, "completed": 2, "test": 0, "transactions": 2, "transactionsWithDesiredStatus": 0, "isApiUser": true } }

Response explanation:

"eligible": are the transactions that are eligible and the status changed within the process

"rejected": are the transactions that changed from Complete to Buyer_Reconciliation_Reject

"completed”: are the transactions that changed from Buyer_* to Complete

"test": are the transactions captured via the button test (available in UI)

"transactions": total completes uploaded

"transactionsWithDesiredStatus": are the transactions that already have the status requested with this reconciliation process.

 

NOTE: to get the transactions not eligible to reconcile or not reconciled withing the recon process you can use this formula

transactions - eligible = not eligible / not reconciled

DESCRIPTION:

STAGING API and Payload:

1 - Reconciliation Single Survey:

Buyer API endPoint - Change the transaction to Buyer_Reconciliation_Reject:

POST : https://staging.spectrumsurveys.com/buyers/v2/adjustments/surveys/{surveyId}?operationType=LIVE_RECONCILIATION&reconStatus=2 API: POST Access-token: Buyer account

Request Payload:

[ { "transaction_id": "7lNK5AGrSL3bk5tV4gw0Tr" "change_reason": "Respondent Quality" // optional }, { "transaction_id": "7dTdSUUWkR9DBs7rUi5jdT" }, { "transaction_id": "5EmEbeX9mEblEpwP6yHG1K" }, { "transaction_id": "6HkYQWFMcIcDOTxfnIi6op" } ]

 

Response:

{ "adjustment_id": "b43ce6a3-9578-4ba6-8cc5-a4add094a352", "summary": { "desiredStatus": 33, "eligible": 2, "rejected": 2, "completed": 0, "test": 0, "transactions": 2, "transactionsWithDesiredStatus": 0, "isApiUser": true } }

 

2 - Reconciliation multiple surveys (Bulk Reconciliation)

Buyer API endPoint - Change the transaction to Buyer_Reconciliation_Reject:

POST : https://staging.spectrumsurveys.com/buyers/v2/adjustments?operationType=LIVE_RECONCILIATION&reconStatus=2 API:POST Access-token:Buyer account

Request Payload:

[ { "transaction_id": "7by1JwD0oLzX1iip0liui4", "change_reason": "Suspected Fraud" // optional }, { "transaction_id": "7Er50MDCnV0b0bc91S8Qr1", "change_reason": "Respondent Quality" // optional }, { "transaction_id": "41JBHVbfHas8kzAwYhGW9l", "change_reason": "Ghost Completes" // optional }, { "transaction_id": "7mwVC728181yok8mKgDzQv", "change_reason": "Client Rejected" // optional }, { "transaction_id": "21NJOoeCB4mXoMZXg77bNo", "change_reason": "Duplicate Respondent" // optional }, { "transaction_id": "5j2UOEpgsMlXoLix0qtU0W" } ]

 

Response:

{ "adjustment_id": "46e10177-c3a3-4246-a33a-0c8306f3a9a6", "summary": { "desiredStatus": 33, "eligible": 2, "rejected": 2, "completed": 0, "test": 0, "transactions": 2, "transactionsWithDesiredStatus": 0, "isApiUser": true } }

NOTE 1:

The system always records any Reconciliation process made via API or UI and this information can be find on the Survey dashboard → Reconciliation Tab

These are the label show:

  • Reject : Reconciliation via UI - TX changes to buyer_rejects

  • Reject (API): Reconciliation via API - TX changes to buyer_rejects

  • Complete: Reconciliation via UI - TX changes to complete

  • Complete (API): Reconciliation via UI - TX changes to buyer_rejects

  • Accept: Reconciliation via UI - Any TX in the file will changes to complete if they are eligible, and the TX current completes not in the file, will change buyer_rejects

  • Accept (API): Reconciliation via API - Any TX in the file will changes to complete if they are eligible, and the TX current completes not in the file, will change buyer_rejects

 

Screenshot 2024-02-01 at 15.13.02.png

NOTE 2:

if you need to test the Live Reconciliation API and you want to create some test transactions, please ask your account manager or contact the PureSpectrum product team and they will give you access to a document that will allow you to create a transaction via API.

 

NOTE 3:

10pm PT is the absolute latest you can submit a reconciliation for it to be included in the next months invoice.