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

# Chargeback.report

The `report` method reports a batch of `Chargeback` objects to ChargeGuard. This method is rarely used, because Vindicia usually retrieves chargebacks directly from the bank or payment processor on the merchant’s behalf, and enters them into ChargeGuard. If your bank or payment processor does not allow Vindicia access to that information, you must retrieve the chargebacks yourself, and send the information to Vindicia by calling this method.

The data in this call is processed asynchronously. If the call succeeds, it means that Subscribe has received the data and queued it for processing. Because Subscribe processes chargebacks in the queue sequentially, and then adds them to the Vindicia database, a time lag exists between the time you report the chargebacks and the time they appear on the Subscribe Portal.

An incomplete chargeback, or one that contains invalid data, might cause errors during processing, in which case Subscribe might not add the chargeback to the database. Vindicia monitors its server logs for such errors and can, in some cases, fix them and reprocess the chargebacks. In other cases, a Vindicia representative might contact you for the correct data.

If you submit large amounts of data with this call, it might time out. Consider dividing the data into smaller batches and submitting them with separate calls, one batch at a time.

## Input

*srd*: sparse response description, a SOAP string (which must be a JSON object), in which you specify the elements you want returned.This parameter enables the calling system to constrain a `method` call to return only components you specify. This gives you greater control over returned content, and improves response time within the Vindicia platform by reducing the processing needed for the call.

Some fields are required, either practically or in the WSDL, and will be returned regardless of the *srd*. A null *srd* returns the complete response.

*chargebacks*: an array of `Chargeback` objects to send to Vindicia.

## Output

*return*: an object of type `Return` that indicates the success or failure of the call.

## Returns

In addition to those listed in [The Return Object](The_Return_Object), this call returns:

| Return Code | Return String |
| - | - |
| `400` | `Error saving transaction: *error-description*.` |

## Example

```

// create a chargeback object and populate it with data
$cb = new Chargeback();
$cb->setMerchantTransactionId("TX-2324");
$cb->setAmount(34.99);
$cb->setReferenceNumber("PTECH-42123");
$cb->setProcessorReceivedTimestamp('2009-11-11T22:34:32.265Z');

// Set other chargeback object fields here as available

...

// Create another chargeback to report

$cb2 = new Chargeback();
$cb2->setMerchantTransactionId("TX-2327");
$cb2->setAmount(19.99);
$cb2->setReferenceNumber("PTECH-42543");
$cb2->setProcessorReceivedTimestamp('2009-11-10T02:34:32.265Z');

$cb_soapcaller = new Chargeback();

// Make the SOAP call to report the chargebacks

$ret = $cb_soapcaller->report(array($cb, $cb2));
if ($ret['returnCode'] == 200) {
   log("Chargebacks submitted to Vindicia successfully at " . time() );
}
```

**Parent topic:**[Chargeback Methods](../topics/Chargeback_Methods)


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