> For the complete documentation index, see [llms.txt](https://instantor.gitbook.io/instantor-api-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://instantor.gitbook.io/instantor-api-docs/report-delivery/step-by-step-guide.md).

# Delivery methods

### HTTPS delivery

Using the Product Key and Decryption key, you will be able to receive the reports to your specified endpoint and decrypt them. Instantor API provides all the necessary functionality for decrypting the payload, and are available for .NET, Java and PHP.

#### Environments and Callback URLs

You are required to provide Instantor [tech support](mailto:tech@instantor.com) with atleast one Callback URL. Instantor will configure that Callback URL for your production environment. You can ask Instantor to configure any number of environments (production environment, or staging, or test, etc.) for you, including a unique Callback URL for each environment. E.g. if a client would like to receive reports from their test-environment to a Callback URL associated to that test-environment. Please read more in the [Identify your customer section](/instantor-api-docs/javascript-api/.userparam.md#special-purpose-keys) on how to specify the environment in your webpage integration.

### Expected response

After data delivery and decryption, the client is required to respond to the original HTTPS request with plain text message in form of`OK: <msg_id>`, where `<msg_id>`  is unique identifier for that report and is sent as a POST parameter with key msg\_id.

#### Example:&#x20;

```
...source=Product-Key&msg_id=msg-154c798aa69-1463637551721&action=report%2Fuser%2Fdata&encryption=B64%2FMD5%2FAES%2FCBC%2FPKCS5&payload=fLaaLEvgWN9leASb0g3TNZx4yp0D4yjFcnUNpOgsIHJH9...
```

#### Expected response:

```
OK: msg-154c798aa69-1463637551721
```

{% hint style="info" %}
If the endpoint throws an exception/error or doesn’t contain msg\_id our system waits for 30 seconds and tries to deliver the report again. We push the same report 3 times with a 30-second interval. If all 3 attempts are unsuccessful, our system marks it as a failure.&#x20;
{% endhint %}

### SDK to receive reports

#### Java SDK&#x20;

You can download the latest version of the Instantor Java SDK here:&#x20;

{% file src="/files/-MRxvOe\_ZYYXUhP21vqy" %}
instantor-api-0.4.5-java
{% endfile %}

If you want to verify the integrity of the Java SDK, please use the checksum below:

```
sha512sum: 4a63e52840b969094bffd1a894a03b3b69075d0ea0eb6790045827b1a7094a72578a972bfd7502f0c66704ed4a87b2e0538917b4dd00c9b1ca7a67be7822c62e
```

#### PHP SDK

You can download the latest version of the Instantor PHP SDK here:

{% file src="/files/-MRxvz-awLnZF\_1VYn6k" %}
instantor-api-php-0.1.4
{% endfile %}

If you want to verify the integrity of the PHP SDK, please use the checksum below:

```
sha512sum: 484c919809d324fd7ba6818670b65455d850e49bd4e1862942b1b4caea25e8792a80fe0c718c6a3a28c1314ea171ad6d00bc24b5f92935cca12fa04c201f2487
```

#### .NET API&#x20;

You can download the latest version of the Instantor .NET API here

{% file src="/files/-MRy-YptyXhMAZWU3BH0" %}
instantor-api-net-0.5
{% endfile %}

If you want to verify the integrity of the .NET API, please use the checksum below:

```
sha512sum: 5ca8960ecfdb0d54c6bfda5550625b8726faccb528abfdb2e0980febbe16a78d6cd06bb72d235d7dc2de2ee6f9789648c31c226c423a7abfc2348cd467927825
```

### SFTP delivery

Reports can be delivered to your server by SFTP. Please provide an endpoint and credentials so that we can configure our system appropriately. \
\
You are required to host the SFTP server yourself.&#x20;

{% hint style="info" %}
This delivery method is mandatory if you are receiving a human-readable PDF report instead of a JSON file.
{% endhint %}
