> For the complete documentation index, see [llms.txt](https://developer.paywall.one/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.paywall.one/payment-orchestration-integration-document/callback-examples/bulk-transaction-callback.md).

# Bulk Transaction Callback

Once the bulk transactions are completed by Paywall, a callback is sent to the `CallbackAddress` provided within the bulk transaction order. This callback allows your system to be informed of the final status of the transaction.

<table><thead><tr><th>Key</th><th>Description</th></tr></thead><tbody><tr><td><pre><code>Type
</code></pre></td><td><p><strong>Notification type</strong></p><p><br>See: <a href="/pages/zEIvla8ZN22dNrlNQODr">Review</a></p></td></tr><tr><td><pre><code>BulkPaymentId
</code></pre></td><td>Bulk payment/transaction ID</td></tr><tr><td><pre><code>ErrorMessage
</code></pre></td><td>Descriptive message of the error that occurred during the bulk transaction</td></tr><tr><td><pre><code>DateTime
</code></pre></td><td>Final action date of the bulk transaction</td></tr><tr><td><pre><code>FinishedAt
</code></pre></td><td>Completion date of the bulk transaction</td></tr><tr><td><pre><code>CreatedAt
</code></pre></td><td>Creation date of the bulk transaction</td></tr><tr><td><pre><code>DurationTime
</code></pre></td><td>Duration of the bulk transaction until completion (in seconds)</td></tr><tr><td><pre><code>Hash
</code></pre></td><td><p>The Hash parameter used to verify that the request originated from Paywall. This hash is generated using Paywall’s 'System Webhook Hash Key'.</p><p></p><p><strong>Format:</strong></p><p><br><code>{key}###{bulkPaymentId}###{merchantUniqueCode}</code></p></td></tr><tr><td><pre><code>IsCompressed
</code></pre></td><td><p>Indicates whether the request has been compressed.</p><p><br>The compression is applied only if specified by you at the time the request is sent.</p></td></tr><tr><td><pre><code>PageNumber
</code></pre></td><td>For your large-volume transactions (e.g., 10k, 20k, 50k), you may want to receive partial callbacks. Paywall supports partial callbacks and delivers them in batches of 1,000. In this case, the <code>PageNumber</code> parameter indicates which 1,000-record page is being sent.</td></tr><tr><td><pre><code>TotalPages
</code></pre></td><td>Just like <code>PageNumber</code>, the <code>TotalPages</code> parameter indicates the total number of pages in partial callbacks.<br>For example, if the value is 10, it means Paywall will send you a total of 10 callback batches.</td></tr><tr><td><pre><code>HasMorePages
</code></pre></td><td>In partial callbacks, if the <code>HasMorePages</code> parameter in the callback content is <code>true</code>, it means there are additional callbacks pending to be sent for that transaction.<br>If the parameter is <code>false</code>, it indicates that the callback process for the bulk transaction has been completed.</td></tr><tr><td><pre><code>Hash
</code></pre></td><td><p>The Hash value used to verify that the notification was sent from Paywall. It is generated using the <code>System Webhook</code> <code>Hash Key</code> activated in the Paywall panel.</p><p></p><p>The key mentioned above may vary depending on the value of the <code>HashKeyType</code> parameter. A dynamic structure should be implemented.</p></td></tr><tr><td><pre><code>HashFormat
</code></pre></td><td>The format type used to generate the hash value<br><br>See: <a href="/pages/CwGK9IsyjWbnxDaBvQOq">Hash Formats</a></td></tr><tr><td><pre><code>HashKeyType
</code></pre></td><td>The type of key used in generating the hash value<br><br>See: <a href="/pages/rGeM863mExwJKspEaXUG">Key Types </a></td></tr></tbody></table>

**Example Json:**

```json
{
    "Type": 1,
    "BulkPaymentId": 3846,
    "Payments": [
        {
            "PaymentId": 9752770,
            "Amount": 11.96,
            "UniqueCode": "F637DCC6-6907-48DF-97CA-5F7DF23739F2",
            "MerchantUniqueCode": "b0d4f914-9c6b-423f-9358-ca2943c84554",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752771,
            "Amount": 11.96,
            "UniqueCode": "541804A9-468B-4D18-B985-63CFB495A94B",
            "MerchantUniqueCode": "9151953d-8c34-4af2-bfc4-580c6a0b9e33",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752772,
            "Amount": 11.96,
            "UniqueCode": "E9A9CD6C-ABBA-43D2-ADA1-CCDF0B8CBCF2",
            "MerchantUniqueCode": "951d487a-c79a-4b74-b79b-a8861bfa97bc",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752773,
            "Amount": 11.96,
            "UniqueCode": "F50C9092-1FB2-4CD6-81D9-A3D807AB0AAE",
            "MerchantUniqueCode": "e99ac588-8c46-4d4e-a55b-db02a0ddea55",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752774,
            "Amount": 11.96,
            "UniqueCode": "BD61936A-5E7D-4242-949A-7F25845E05F5",
            "MerchantUniqueCode": "15c48302-bde5-464b-819e-ce068d809c30",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752775,
            "Amount": 11.96,
            "UniqueCode": "2702975F-02E6-4DED-BB10-6D1DF6744868",
            "MerchantUniqueCode": "d6037785-3911-42c0-a613-6fe9bf0701e9",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752776,
            "Amount": 11.96,
            "UniqueCode": "D4076EA8-7A2E-4A29-8950-4EC5E14B0E4D",
            "MerchantUniqueCode": "814efbf5-fe66-487c-be8d-2f3e55ced0c4",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752777,
            "Amount": 11.96,
            "UniqueCode": "4F2C3208-CA18-48C0-ABE6-A236824986BF",
            "MerchantUniqueCode": "41a0ce78-b3a7-4ef6-a25a-24f1949f54b3",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752778,
            "Amount": 11.96,
            "UniqueCode": "F733EEA1-D788-4C32-ABBD-CDFBEB04CE0B",
            "MerchantUniqueCode": "9b3eedcb-a743-481a-b82c-6a8a6b176579",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        },
        {
            "PaymentId": 9752779,
            "Amount": 11.96,
            "UniqueCode": "4C0A0021-DE63-420F-BB39-87FE56C51B27",
            "MerchantUniqueCode": "9a1cca36-b028-437c-921f-54ab27844971",
            "CurrencyId": 1,
            "Installment": 1,
            "ActivityTypeId": 1,
            "ActivityStatusId": 4,
            "TrackingCode": "",
            "CardNumber": null,
            "ProviderId": 1,
            "ProviderKey": "Iyzico",
            "PaywallErrorCode": null,
            "ProviderErrorCode": null,
            "ProviderErrorMessage": null,
            "BankErrorCode": null,
            "BankErrorMessage": null
        }
    ],
    "ErrorMessage": "",
    "DateTime": "2025-08-14T16:47:01.3363911+03:00",
    "CreatedAt": "2025-08-14T16:46:06.283",
    "FinishedAt": "2025-08-14T16:47:01.3364515+03:00",
    "DurationTime": 55.0534627,
    "Hash": "b3b0a9e8cd11c174e5822744b96dbff8a35179327d989dc088c1e647c4ab7d3f",
    "HashFormat": "BulkPayment",
    "HashKeyType": 4,
    "IsCompressed": false,
    "PageNumber": 1,
    "TotalPages": 1,
    "HasMorePages": false,
    "MerchantUniqueCode": "fe4acb15-5acc-48ba-9746-a2e72df3dec8"
}
```
