# Record a payment against a cash flow

Records that the money on a cash flow actually arrived: the status becomes `completed` and the receipt is stored against it. Body: `actualAmountMinor` (required and more than zero — a receipt needs the amount that actually landed), `processedDate` (today if absent), `externalTransactionId`, `batchId`, `notes`. Legal only from `expected`, `pending` or `failed`; an already-settled flow reads as a not-found. A payment schedule's instalment is a different record — that receipt is `post_payments_id_record`.

Access class: `workspace`.

## Endpoint

`POST /v1/cash-flows/{id}/record-payment`

## Parameters

| Name | In | Type | Required |
| --- | --- | --- | --- |
| id | path | string | Yes |

## Request body

Content type: `application/json`.

```json
{
  "body": {
    "actualAmountMinor": 1,
    "batchId": "",
    "externalTransactionId": "",
    "notes": "string",
    "processedDate": "string"
  },
  "params": {
    ":id": "string"
  },
  "query": {}
}
```

## Responses

### 201

the action's answer

Content type: `application/json`.

```json
{
  "data": {
    "actualAmountMinor": 1,
    "batchId": "",
    "counterpartyId": 1,
    "createdAt": "string",
    "currency": "string",
    "dealRowId": "",
    "detail": {},
    "direction": "string",
    "dueDate": "string",
    "expectedAmountMinor": 1,
    "externalTransactionId": "",
    "facilityId": 1,
    "failureCode": "string",
    "failureReason": "string",
    "flowType": "string",
    "id": 1,
    "maxRetries": 1,
    "method": "string",
    "notes": "string",
    "processedDate": "string",
    "retryCount": 1,
    "scheduleId": 1,
    "sequenceNumber": 1,
    "settledDate": "string",
    "status": "string",
    "totalPayments": 1,
    "updatedAt": "string"
  }
}
```

### default

a refusal: `{"error": "<what a person needs to read>"}`. 401 no credential, 402 the plan does not include this, 403 the seat does not, 404 the thing does not exist or is not yours to see.

Content type: `application/json`.

```json
{
  "error": "string"
}
```
