# Make e-signature integration

A Make scenario can send documents through docuinked today with the HTTP module, and hear back through a custom webhook. A native Make app is coming soon.

## What works today

| Route | Status |
|---|---|
| HTTP module, Make a request | Works now |
| Webhooks module, Custom webhook | Works now |
| docuinked app in Make | Coming soon |

## Recipe: send from a scenario

Add **HTTP**, then **Make a request**.

- URL: `https://docuinked.com/v1/documents`
- Method: `POST`
- Headers: `Authorization` as `Bearer di_test_...`, and `Idempotency-Key` mapped from a stable bundle value
- Body type: Raw, with content type `JSON (application/json)`
- Parse response: Yes

```json
{"title": "Statement of work",
 "pdf_url": "https://example.com/sow.pdf",
 "signers": [{"name": "Dana Reed", "email": "dana@example.com"}],
 "ordered": false,
 "send": true}
```

Read `data.id` and `data.status` from the response in later modules.

## Handle errors on purpose

Make stops a scenario on an error unless you add a route. The status code tells you what to do. Retry a 429 after the `Retry-After` wait. Retry a 500 with the same `Idempotency-Key`. Send a 400, 403 or 422 to a person, because a retry gets the same answer. Every code is on the [errors page](/docs/errors).

## Hear back when it is signed

Create a **Custom webhook** module and copy its address. Register it with `create_webhook`. Route on `type`, then fetch details with a second HTTP module. Scheduled scenarios can skip this and poll `GET /v1/documents?status=completed`.

## Common questions

### Why use the HTTP module and not a native app?

There isn't a native app yet. The HTTP module calls the same API the app will call, so a scenario you build now keeps working.

### How do I send many documents without hitting the limit?

Keep runs under 120 requests a minute per key, and remember the beta cap of 100 live sends a day per account. Test keys have no daily cap, so you can try a large batch safely first.

### Can a Make AI agent use docuinked?

Yes, by calling the API from its tools. Give it a key set to "Needs my approval", so its drafts wait for a person.
