---
search:
  tags:
    - customers
    - POST
seo:
  description: >-
    Read processing figures off a merchant… Reference for the POST
    /workspaces/{organizationId}/intake/{customerId}/transcribe-statement
    endpoint in the Pile API.
sidebar:
  label: Create intake transcribe statement
  badge: POST
title: Create intake transcribe statement
type: openapi-operation
---
Read processing figures off a merchant statement. Explicit figures win; otherwise extractedText is regex-parsed, or imageBase64/an R2 attachmentKey goes through Workers AI vision (when bound). Writes estMonthlyVolumeCents/monthly_card_volume_cents/totalFeesCents/effectiveRateBps to customFields, records a statement_ocr revenue_estimate signal, and re-ranks the merchant.

`POST /workspaces/{organizationId}/intake/{customerId}/transcribe-statement`

**Request body** (`application/json`)

- `attachmentKey` (string)
- `imageBase64` (string)
- `extractedText` (string)
- `monthlyVolumeCents` (number)
- `totalFeesCents` (number)
- `effectiveRateBps` (number)
- `avgTicketCents` (number)
- `processor` (string)
- `statementPeriod` (string)

Request body example:

```json
{
  "attachmentKey": "string",
  "imageBase64": "string",
  "extractedText": "string",
  "monthlyVolumeCents": 0,
  "totalFeesCents": 0,
  "effectiveRateBps": 0,
  "avgTicketCents": 0,
  "processor": "string",
  "statementPeriod": "string"
}
```

**Responses**

- `200` — Statement transcribed
- `400` — Invalid request
- `404` — Customer not found

Response example, 200:

```json
{
  "customerId": "string",
  "metrics": {
    "monthlyVolumeCents": 0,
    "totalFeesCents": 0,
    "effectiveRateBps": 0,
    "processor": "string"
  },
  "score": 0
}
```
