---
# @generated by sylphx-gen. Do not edit.
title: "Record a bank receipt"
description: "`money.bank_receipts.record` (POST /v1/{parent}/bank_receipts:record): RecordBankReceipt through the project-scoped bank transfer API."
type: reference
product: payments
summary: "RecordBankReceipt through the project-scoped bank transfer API."
updated: 2026-09-28
nav: false
---

RecordBankReceipt through the project-scoped bank transfer API.

- **Path** `POST https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/bank_receipts:record`
- **Scope** `billing:bank_receipts:write`
- **Effect** `write` — a successful call changes state.
- **Collection** [bank_receipts](/docs/api/bank_receipts)

## Request

| Field | Type | What it is |
| --- | --- | --- |
| `parent` | `string` | The environment recording the receipt. Required. |
| `checkout_session` | `string` | The checkout against which bank statement evidence is recorded. Required. |
| `bank_transaction_id` | `string` | Bank statement transaction identity. Required. |
| `amount_minor` | `int64` | Actual received minor units. Required. |
| `currency_code` | `string` | Actual currency. Required. |
| `received_time` | `timestamp` | Bank receipt time. Required. |
| `reference` | `string` | Actual statement reference; absent references are held. |
| `payer_evidence` | `string` | Bank statement evidence or secure evidence locator. Required. |
| `ambiguous` | `bool` | Hold evidence with unresolved payer or bank ambiguity. |

## Response

| Field | Type | What it is |
| --- | --- | --- |
| `name` | `string` | Resource name. |
| `uid` | `string` | Stable resource identity. Output only. |
| `meta` | `ResourceMeta` | Resource metadata. Output only. |
| `checkout_session` | `string` | The checkout this receipt was submitted against. Output only. |
| `bank_transaction_id` | `string` | The bank statement transaction identity. Output only. |
| `amount_minor` | `int64` | Amount actually received in minor units. Output only. |
| `currency_code` | `string` | Currency actually received. Output only. |
| `received_time` | `timestamp` | Bank-reported receipt time. Output only. |
| `reference` | `string` | Reference observed on the bank statement; empty is held. Output only. |
| `payer_evidence` | `string` | Evidence locator or statement evidence; screenshots alone are not proof. Output only. |
| `confirmer` | `string` | Authenticated principal that recorded this receipt. Output only. |
| `state` | `string` | paid, held, rejected, refunded or reversed. Output only. |
| `hold_reason` | `string` | Why settlement was held. Output only. |
| `entries` | `BankReceiptEntry[]` | Append-only human resolution, refund and reversal history. Output only. |

### ResourceMeta

| Field | Type | What it is |
| --- | --- | --- |
| `generation` | `int64` | Increases by one on every change to `spec`. Output only. |
| `etag` | `string` | Strong ETag (AIP-154): changes on any change to spec, status, or metadata. Send it back as `If-Match` or `etag` to make Update and Delete conditional; a mismatch fails with ABORTED / 409 `ETAG_MISMATCH`. Output only. |
| `create_time` | `timestamp` | When the Resource was created. Output only. |
| `update_time` | `timestamp` | When the Resource last changed. Output only. |
| `delete_time` | `timestamp` | Set while the Resource is being deleted. Output only. |
| `labels` | `map<string, string>` | Caller-writable, indexed labels (AIP-122 label rules). |
| `annotations` | `map<string, string>` | Caller-writable, unindexed annotations. |
| `display_name` | `string` | Caller-writable human-readable name. |
| `creator` | `string` | The principal that created the Resource. Output only. |

### BankReceiptEntry

| Field | Type | What it is |
| --- | --- | --- |
| `kind` | `string` | accept, reject, refund or reversal. Output only. |
| `evidence` | `string` | Operator evidence supporting this decision. Output only. |
| `confirmer` | `string` | Authenticated decision maker. Output only. |
| `create_time` | `timestamp` | UTC decision time. Output only. |
| `external_reference` | `string` | Bank refund/reversal reference, when applicable. Output only. |

## Errors

- [`UNAUTHENTICATED`](/docs/api/errors/UNAUTHENTICATED) — No valid key or token was presented.
- [`PERMISSION_DENIED`](/docs/api/errors/PERMISSION_DENIED) — The key lacks the method's permission.
- [`RESOURCE_NOT_FOUND`](/docs/api/errors/RESOURCE_NOT_FOUND) — The named Resource does not exist or is not visible.
- [`INVALID_FIELD`](/docs/api/errors/INVALID_FIELD) — A field failed validation.
- [`RESOURCE_ALREADY_EXISTS`](/docs/api/errors/RESOURCE_ALREADY_EXISTS) — A Resource with this name exists.
- [`INVALID_STATE`](/docs/api/errors/INVALID_STATE) — The Resource is in a state that forbids the call.
- [`ETAG_MISMATCH`](/docs/api/errors/ETAG_MISMATCH) — The etag sent does not match the Resource's current etag.
- [`UNAVAILABLE`](/docs/api/errors/UNAVAILABLE) — The Resource store, the owning service's backend, or the key verifier's snapshot is unavailable; retry after Retry-After.

Every error arrives in the body [Errors](/docs/platform/errors) describes.

## Examples

**cURL**

```curl
curl -X POST "https://api.sylphx.com/v1/orgs/acme/projects/shop/envs/production/bank_receipts:record" \
  -H "Authorization: Bearer $SYLPHX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount_minor":1,"bank_transaction_id":"…","checkout_session":"…","currency_code":"…","payer_evidence":"…","received_time":{}}'
```

**TypeScript**

```ts
const response = await sylphx.money.bankReceipts.record({ amountMinor: 1, bankTransactionId: '…', checkoutSession: '…', currencyCode: '…', parent: 'orgs/acme/projects/shop/envs/production', payerEvidence: '…', receivedTime: {} })
```

**Rust**

```rust
let mut req = sylphx::money::RecordBankReceiptRequest::default();
req.amount_minor = 1;
req.bank_transaction_id = "…".to_string();
req.checkout_session = "…".to_string();
req.currency_code = "…".to_string();
req.parent = "orgs/acme/projects/shop/envs/production".to_string();
req.payer_evidence = "…".to_string();
req.received_time = Some(Default::default());
let response = sx.money().bank_receipts().record(req).await?;
```

**CLI**

```bash
sylphx money bank-receipts record orgs/acme/projects/shop/envs/production
```

**MCP**

```json
{ "method_id": "money.bank_receipts.record", "args": {"amount_minor":1,"bank_transaction_id":"…","checkout_session":"…","currency_code":"…","parent":"orgs/acme/projects/shop/envs/production","payer_evidence":"…","received_time":{}} }
```
