---
title: Create check or recovery
summary: Posts a new check or recovery financial transaction against a Guidewire claim.
status: draft
owner: SAIF.Core documentation team
last_reviewed: 2026-09-24
library: SAIF.Data.Guidewire
reference_type: package
operation_id: OP-SDG-04
trigger: Caller invokes FinancialDataApiClient.CreateCheckAsync or CreateRecoveryAsync
---

# Create check or recovery

This operation posts a new check or recovery financial transaction against a Guidewire claim through `FinancialDataApiClient`, throwing on a non-success response.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-SDG-04 |
| **Trigger** | Caller invokes `CreateCheckAsync` or `CreateRecoveryAsync` |
| **Inputs** | Claim id, `CheckFinancialData` or `RecoveryFinancialData` |
| **Outputs** | HTTP 2xx response, or a thrown exception |
| **Primary components** | `FinancialDataApiClient.CreateCheckAsync`, `FinancialDataApiClient.CreateRecoveryAsync` |
| **Entry point** | `Data/SAIF.Data.Guidewire/Clients/FinancialDataApiClient.cs` |

## Steps

1. Resolve the client's base URL (`cc.financial.api.url.v1`) and Basic-auth header (`cc.gwcreds`).

   > **Origin**: Step 1 is implemented in [Resolve base URL and authenticate](resolve-base-url-and-authenticate.md) (`SAIF.Data.Guidewire`) and executed on behalf of this operation.
2. `CreateCheckAsync`: POST `{base}{claimId}/check` with the `CheckFinancialData` payload.
   - Implemented synchronously despite the `Async` method name, per code.*
   - If the response is non-success, throw with the status code and response content. ([SDG-BR-011](../business-rules.md#sdg-br-011-non-success-responses-throw-with-status-and-content))
3. `CreateRecoveryAsync`: POST `{base}{claimId}/recovery` with the `RecoveryFinancialData` payload.
   - If the response is non-success, throw with the status code and response content. ([SDG-BR-011](../business-rules.md#sdg-br-011-non-success-responses-throw-with-status-and-content))

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start(["Caller invokes CreateCheckAsync<br>or CreateRecoveryAsync"]) --> S1["Resolve base URL and<br>Basic-auth header"]
	S1 --> Which{"Which transaction?"}
	Which -->|Check| S2["POST {base}{claimId}/check"]
	Which -->|Recovery| S3["POST {base}{claimId}/recovery"]
	S2 --> S4{"Non-success status?"}
	S3 --> S4
	S4 -->|Yes| EndErr([Throw with status and content])
	S4 -->|No| EndOk([Return success])
```

## Failure and edge-case behavior
- A non-success HTTP status throws with the status code and response content for both the check and recovery paths ([SDG-BR-011](../business-rules.md#sdg-br-011-non-success-responses-throw-with-status-and-content)).

## Related documentation
- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.

## Sources
- `Data/SAIF.Data.Guidewire/Clients/FinancialDataApiClient.cs`
- `Data/SAIF.Data.Guidewire/Models/FinancialDataApi/CheckFinancialData.cs`
- `Data/SAIF.Data.Guidewire/Models/FinancialDataApi/RecoveryFinancialData.cs`
