# Webhooks

## Getting started

Allpass.ai uses webhooks to notify your backend when an event happens in your client-side SDK. Webhooks are useful for asynchronous events like when an applicant completes a *Verification* or passes any step. You should specify your backend endpoint URL and get your **Encryption Keys**.&#x20;

You can do it within the workplace [`Application page`](https://docs.elkyc.com/home/get-started/application)

{% hint style="info" %}
Every application has it's own **Encryption Method**. Webhook data is encrypted with this method
{% endhint %}

The Allpass webhook request has the same structure as all Allpass responses:

```typescript
export class ResponseEntity {
  @ApiProperty()
  status: boolean;
  
  @ApiProperty({ example: 200 })
  statusCode: number;
  
  @ApiProperty({ type: String })
  data: string;
  
  @ApiProperty({ example: '2021-08-20T14:52:33.648Z' })
  time: string;

  constructor(data: string) {
    this.status = true;
    this.statusCode = 200;
    this.data = data;
    this.time = new Date().toISOString();
  }
}
```

Where **data** is encrypted string. Read about [encryption](https://docs.elkyc.com/home/integration/encryption)

### Retry failed

During the verification process you will receive webhooks with different types and data.

Allpass Webhook System wait for response with status `200`, otherwise the Webhook Retry System is activated after 30 seconds with exponential backoff and 10 attempts.
