---
title: "Upload funding receipt"
method: POST
path: "/v1/spvs/{spv_slug}/subscription/{person_id}/fundings"
tags: ["Subscription Fundings"]
---

# Upload funding receipt

`POST /v1/spvs/{spv_slug}/subscription/{person_id}/fundings`

## Request

- The document declares no server URL.
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/zestequity/apis/zest-equity-public-api-api/docs/v1/spvs/:spv_slug/subscription/:person_id/fundings/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads a wire-transfer receipt + funding metadata (amount / currency / wire_reference) for a partner-managed subscription. Q6c strict order: the signed subscription form must already be on record, otherwise this endpoint returns 409. Emits `funding_receipt.uploaded` webhook on success.

## Path parameters

- `spv_slug` string, required
- `person_id` string, required

## Request body `multipart/form-data`

- BodyUploadFundingReceipt
  - `amount` string, required
  - `currency` string, required
  - `wireReference` string, required
  - `file` string, binary, required

## Response `201`

Successful Response

- unknown

## Other responses

- `400`: Invalid request
- `401`: Invalid token
- `403`: Service not provisioned for partner API
- `404`: SPV or person not found
- `409`: Form not on record yet, or terminal status
- `413`: File too large (>10 MB)
- `415`: Unsupported media type
- `422`: Validation Error

---

[API](https://skmtc.dev/zestequity/apis/zest-equity-public-api-api.md) - [All operations](https://skmtc.dev/zestequity/apis/zest-equity-public-api-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zestequity/apis/zest-equity-public-api-api/revisions/0df065045794?raw)
