# 1. Refund (Batch)

## Batch Refund Service

<mark style="color:green;">`POST`</mark> `{{Base Adres}}/api/paywall/payment/bulk/payment/refund`

{% hint style="info" %}
Important: To use the batch refund service, you must include the parameters **apikeypublic** and **apiclientpublic** in the Header section.

[<mark style="color:green;">**PaymentAPI Address**</mark>](https://developer.paywall.one/payment-orchestration-integration-document/environment)
{% endhint %}

{% hint style="warning" %}
Refund requests must be sent <mark style="color:red;">after the day</mark> the payments occur. For payments to be reversed on the same day, the cancellation service should be used instead of the refund service.
{% endhint %}

{% hint style="info" %}
You can refund individual transactions within batch payments one by one. To do this, you should use the [refund](#batch-refund-service) service.
{% endhint %}

**The parameters that must be sent to the service are as follows:**

<table><thead><tr><th width="191">Parameter</th><th width="106">Type</th><th width="126">Compolsory</th><th width="336">Description</th></tr></thead><tbody><tr><td>apikeypublic</td><td>string</td><td>Yes</td><td>The Public Key you obtained from the merchant panel.</td></tr><tr><td>apiclientpublic</td><td>string</td><td>Yes</td><td>The Public Client you obtained from the merchant panel.</td></tr></tbody></table>

**Refund Details:**

<table><thead><tr><th width="215">Parameter</th><th width="106">Type</th><th width="117">Compolsory</th><th width="336">Description</th></tr></thead><tbody><tr><td>Date</td><td>DateTime</td><td>Yes</td><td>The date on which the batch payment you want to refund was made.</td></tr><tr><td>MerchantUniqueCode</td><td>string</td><td>Yes</td><td>The tracking number you provided at the time of the batch payment.</td></tr></tbody></table>

**The sample JSON and example codes to be sent to the service are as follows:**

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json5
{
    "Date": "2024-12-12",
    "MerchantUniqueCode": "8279c96e-2775-4ecf-b594-3cb8fb265f88"
}
```

{% endcode %}
{% endtab %}
{% endtabs %}

**Parameters Returned from the Service**

<table><thead><tr><th width="280">Parameter</th><th width="123.33333333333331">Type</th><th>Description</th></tr></thead><tbody><tr><td>ErrorCode</td><td>int</td><td>Error code. Returns '0' if the operation is successful.</td></tr><tr><td>Result</td><td>bool</td><td>Returns <strong>true</strong> if the operation is successful, and <strong>false</strong> if it fails.</td></tr><tr><td>Message</td><td>string</td><td>Contains information or an error message related to the operation.</td></tr><tr><td><mark style="color:orange;">Body</mark> > Result</td><td>bool</td><td>Indicates whether the operation was successfully received. If <strong>true</strong>, it means Paywall has successfully received the request and placed it into the queue mechanism. Results will be delivered via callback notifications.</td></tr><tr><td><mark style="color:orange;">Body</mark> > TotalPaymentCount</td><td>int</td><td>Total transactions</td></tr></tbody></table>

**Example JSON Returned from the Service**

{% tabs %}
{% tab title="JSON" %}
{% code lineNumbers="true" %}

```json
{
    "ErrorCodeType": 1,
    "ErrorMessage": null,
    "ErrorCode": 0,
    "Result": true,
    "Message": "Bulk payment created and enqueued",
    "Body": {
        "Result": true,
        "BulkPaymentId": 391,
        "TotalPaymentCount": 6
    }
}
```

{% endcode %}
{% endtab %}
{% endtabs %}
