> ## Documentation Index
> Fetch the complete documentation index at: https://developer.accessrc.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Pull Form for Program

## Overview

This document describes the **Pull Form for Program** webhook event, where the **Service Provider** subscribes to the `program.pull_form` event in AccessRC. When the **Program Manager** hits Pull Application Form from Service Provider button that the **Service Provider** is configured for, AccessRC sends a webhook call to the callback service of the Service Provider with the program metadata for integration.

***

> ⚠️ **Warning**\
> Not implemented yet.

## Event Flow: AccessRC → Service Provider

1. **Service Provider** subscribes to the `program.pull_form` event.
2. When the **Program Manager** hits Pull Application Form from Service Provider button, AccessRC sends a webhook call to the service provider's callback URL.
3. The Service Provider returns Form json at the event response.

***

## Webhook Request Payload

```json theme={null}
{
	"programId": "9e59b161-d5df-4207-a965-398e8378a8ff"
}
```

## Webhook Response Payload

### 200 Response

A successful callback response from the Service Provider’s callback service.

```json theme={null}
{
    "status": "success",
    "message": "Callback successfully received",
    "data": {
        "response": "json file"
    }
}
```

### 400 Response

If the validation fails or there is a bad request, the response will be:

```json theme={null}
{
    "status": "failed",
    "error": {
        "code": 400,
        "message": "Validation failed. Please check your input.",
        "type": "BadRequest"
    }
}
```

### 401 Response

If the verification fails, the response will be:

```json theme={null}
{
    "status": "failed",
    "error": {
        "code": 401,
        "message": "Verification failed",
        "type": "Unauthorized"
    }
}
```

### 500 Response

In case of an internal server error, the response will be:

```json theme={null}
{
    "status": "failed",
    "error": {
        "code": 500,
        "message": "Internal Server Error",
        "type": "Exception"
    }
}
```
