> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vindicia.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mapping Retain Response Data Fields

To process responses from Vindicia Retain, you must map the Retain Transaction processing data back to your merchant system. Your system can use this data to update the subscriber status and identify follow-up actions as appropriate. A software developer typically performs this mapping.

## Basic Scenario

Your organization wants to retrieve recovered transactions data from Vindicia Retain. To support this task, you must coordinate with your internal business manager to determine the mapping of the response data provided from Vindicia Retain to your internal transaction data.

You can use this data to update the transaction and subscriber status and identify follow-up actions as appropriate.

## Design Approach

1. Inform your business manager of the availability of returned data that will be stored in your system.
2. The business manager evaluates the data returned from Vindicia Retain processing.
3. Based on the returned Vindicia Retain transaction data members, map the returned Vindicia Retain data members to your internal data fields and identify the destination data in your system to update.
4. Match the transaction data retrieved from Vindicia Retain to the corresponding transactions in your transaction repository.
5. After you retrieve the data from Vindicia Retain, you must update the payment transactions in your backend systems.
6. Confirm with your business manager that a process exists to use the returned data stored in your merchant system to appropriately update the subscriber account:
   * When Vindicia Retain recovers a failed transaction, your system must update the Subscriber status to reflect the payment and leave the Subscriber entitled with full access to the service. Restore the Subscriber services in accordance with your policies.
   * When Vindicia Retain cannot recover a failed transaction, your system can continue to reflect the payment as failed. You must then identify follow-up steps with the Subscriber resulting from the payment failure.

## Retain Response Data Fields

For each failed transaction, map the Vindicia Retain response data fields as specified in the following table to your corresponding merchant data values.

| Vindicia Retain Data Field | Corresponding Merchant Data Value |
| - | - |
| `amount` | The amount of the transaction recovered or attempted by Vindicia Retain (equal to the failed transaction amount). |
| `authCode` | The authorization response code returned by the payment processor for the most recent Failed authorization (that is, decline code such as 302, 530, or other). |
| `avsCode` | The AVS (Address Verification) result for the Billing Address received by Vindicia Retain for the final Transaction attempt. |
| `currency` | The currency code for the Transaction object. Default is USD. |
| `customerId` | The unique ID of the customer's account. |
| `divisionNumber` | The merchant's division or group number, used by the payment processor when processing the original Transaction. Note that: - Chase Paymentech refers to this number as the Division Number. - Litle refers to it as the Report Group. - MeS refers to it as the Profile ID. |
| `merchantTransactionId` | The unique ID of the failed transaction, as provided when the transaction was originally submitted to Vindicia Retain. |
| `selectRefundId` | If a refund is performed, Vindicia Retain assigns this unique ID to the refund. |
| `selectTransactionId` | The unique ID assigned by Vindicia Retain to the final Transaction attempt, which resulted in the status returned. The `selectTransactionId` is sent by Retain to the payment processor in the Order Id/Number field when the Vindicia Retain Transaction is processed. |
| `status` | The final status of the transaction determined by Vindicia Retain. When the failed transaction is recovered, the status is `Captured`. (Note that the `authCode` can still be a decline for force deposit.) |
| `subscriptionId` | The unique ID of the customer subscription. |
| `timeStamp` | The time of the final status determined by Vindicia Retain. |

## Cybersource

If you are using Cybersource, you must map the following additional fields:

| Data Field | Corresponding Merchant Data Value |
| - | - |
| Request ID | The Request ID corresponds to the Credit Card Settlement Status displayed in the Cybersource Business Center. You can use the Request ID to look up the Transaction in the Cybersource Business Center to locate a recovered Vindicia Retain Transaction. The Request ID is returned on the Transaction in the name/value pair `vin:PaymentProcessorTransactionId`, as in the example below: `vin:PaymentProcessorTransactionId = 4471077305495000001519` (Request ID value) |
| `selectTransactionId` | By default, the `selectTransactionId` (assigned by Vindicia Retain to the final Transaction attempt) appears in the Merchant Reference Number field in the Cybersource Business Center. You can use the Merchant Reference Number to look up the Transaction in the Cybersource Business Center, by entering the `selectTransactionId`. **Note:** You can request a configuration change for this behavior so that `merchantTransactionId` (the unique identifier for the Failed transaction when processing was requested) appears in the Merchant Reference Number field instead of the `selectTransactionId`. Contact Vindicia to request this configuration change. In this case, you can use the `merchantTransactionId` to search by Merchant Reference Number rather than `selectTransactionId`. |

## Litle/Vantiv

If you are using Litle/Vantiv, you must map the following additional field:

| Data Field | Corresponding Merchant Data Value |
| - | - |
| Capture Request ID | The Capture Request ID is the value that is assigned by Litle/Vantiv to the final transaction attempt by Vindicia Retain for the Capture/Settlement request. You can use this value to look up a recovered Vindicia Retain transaction in the Litle/Vantiv portal. The Capture Request ID is returned on the transaction in the name/value pair `vin:PaymentProcessorTransactionId`, as in the example below: `vin:PaymentProcessorTransactionId = 83005839974481949` (Capture Request ID value) |

## References

For more information about working with data returned from Retain, see the following sections in the [Vindicia Retain API guide](/portal/Retain_V1.5_API_Reference_Guide/topics/Vindicia_Retain_API_Guide_Preface):

* See the [fetchBillingResults method](/portal/Retain_V1.5_API_Reference_Guide/topics/fetchBillingResults) and the returned [Transaction.nameValues](/portal/Retain_V1.5_API_Reference_Guide/topics/namevaluepair_data_members) output data member for the syntax to obtain name/value pairs on returned Transactions.
* See [Working with WSDL Files](/portal/Retain_V1.5_API_Reference_Guide/topics/Working_with_WSDL_Files) for information on making SOAP calls directly to the Vindicia web servers.

## Scenario Extensions

You can also choose to manually update backend systems using data retrieved from Vindicia Retain

**Parent topic:**[Getting Started with Vindicia Retain](../topics/r_integratingVindiciaRetain)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.