---
title: "Emulate the arrival of the funds a pay-in is waiting for"
method: POST
path: "/sandbox/payins/{payinId}/complete"
tags: ["sandbox"]
---

# Emulate the arrival of the funds a pay-in is waiting for

`POST /sandbox/payins/{payinId}/complete`

## Request

- The document declares no server URL.
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/hevn-inc/apis/hevn-api/docs/sandbox/payins/:payinId/complete/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `payinId` string, required

## Headers

- `X-Hevn-Account` string, nullable: The client account to act for, as a `cl_…` id. Omit it to act as yourself.
- `Idempotency-Key` string, nullable: Your own key for this write, `^[A-Za-z0-9._:-]{1,128}$`. A retry with the same key replays the first answer; the same key with a different request is refused.

## Request body

- SandboxPayinCompletionRequest
  - `remitter` string, nullable: Originator name reported with the credit.

## Response `200`

Successful Response

- SandboxCreditResponse
  - `depositId` string, required: Stable identifier for the emulated credit.
  - `status` 'awaitingSignature' | 'submitted' | 'settled' | 'failed' | 'refunded', required
  - `token` 'USDC' | 'EURC' | 'RD' | 'USDC_ARB', required
  - `amount` string, required: Source amount supplied to the emulator.
  - `currency` string, required: Source currency or digital asset.
  - `idempotencyKey` string, required: Caller-supplied key that binds retries to this credit.
  - `payinId` string, nullable: Incoming-transfer identifier, when completing a pay-in.
  - `transactionId` string, nullable: Ledger transaction identifier, when created.
  - `credited` string, nullable: Amount delivered in the settlement asset.
  - `fee` string, nullable: Fee charged by the emulated route.
  - `feeCurrency` string, nullable: Currency in which the fee is charged.
  - `rate` string, nullable: Conversion rate from source to settlement amount.
  - `txHash` string, nullable: On-chain transaction hash, when applicable.
  - `pollUrl` string, nullable: Relative API URL to poll while processing continues.

## Other responses

- `202`: Accepted
- `422`: Request validation failed

## Changes

- **2026-11-12** `299a3aa6f521`: 1 warning, 2 info
  - added the new `verification_not_applicable` enum value to the `error/code` response property for the response status `422`
  - removed the `phone_required` enum value from the `error/code` response property for the response status `422`
  - removed the `rail_requirements_unmet` enum value from the `error/code` response property for the response status `422`
- **2026-10-23** `a02795de2d2b`: 13 warning, 5 info
  - deleted the `header` request parameter `x-api-key`
  - added the new `RD` enum value to the `token` response property for the response status `200`
  - added the new `RD` enum value to the `token` response property for the response status `202`
  - added the new `USDC_ARB` enum value to the `token` response property for the response status `200`
  - …14 more
- **2026-10-20** `19eb00e9f258`: 1 info
  - removed the `phone_in_use` enum value from the `error/code` response property for the response status `422`
- **2026-10-20** `bd6c9d69540e`: 1 warning
  - added the new `phone_in_use` enum value to the `error/code` response property for the response status `422`
- **2026-10-20** `19eb00e9f258`: 1 info
  - removed the `document_fields_missing` enum value from the `error/code` response property for the response status `422`

[Operation history](https://skmtc.dev/hevn-inc/apis/hevn-api/changes/sandbox/payins/:payinId/complete/post.md)

---

[API](https://skmtc.dev/hevn-inc/apis/hevn-api.md) - [All operations](https://skmtc.dev/hevn-inc/apis/hevn-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hevn-inc/apis/hevn-api/revisions/299a3aa6f521?raw)
