---
title: "Send closing packages"
method: POST
path: "/closing/packages"
tags: ["closing"]
---

# Send closing packages

`POST /closing/packages`

## Request

- Base URL: `https://localhost:4410/api/v1`
- URL: `https://localhost:4410/api/v1/closing/packages`
- Auth: HTTP bearer

Sends each funded investor their own closing package by a link that needs no account: the sealed SAFE and side letters, a sealed funding receipt (PDF/A-2b), the consent's date and limits, and their register entry as a CSV row and an OCF package. The SAFE needs a sealed envelope, a funded mark and a confirmed register entry. Nothing in a package names another investor.

## Request body

- object
  - `safes` object[], required
    - `safe_id` string, required

## Response `200`

The result.

- object
  - `packages` object[], required
    - `id` string, required
    - `safe_id` string, required
    - `investor` string, required
    - `files` object[], required
      - `kind` 'safe' | 'side_letter' | 'receipt' | 'register_csv' | 'ocf', required
      - `file_name` string, required
      - `sha256` string, required
    - `sent_at` string, date-time, required
    - `opened_at` string, date-time, nullable, required

## Other responses

- `202`: Called by an agent or an API key, so the call did not run. A person approves it at approval_url; then GET the Location.
- `default`: An RFC 9457 problem.

---

[API](https://skmtc.dev/binderwork/apis/binderwork-api.md) · [All operations](https://skmtc.dev/binderwork/apis/binderwork-api/llms.txt) · [OpenAPI document](https://skmtc.dev/binderwork/apis/binderwork-api/revisions/f8fab0ebee53?raw)
