---
title: "Transfer credits"
method: POST
path: "/credits/actions/transfer-credits"
tags: ["Credits"]
---

# Transfer credits

`POST /credits/actions/transfer-credits`

Transfers credits from one customer to another.

A credit transfer moves a specified amount from one customer's wallet to another. This is typically used when merging duplicate customer accounts or redistributing loyalty balances. Both the deduction from the original customer and the addition to the new customer are recorded in the credit history.

The `credit_type_id` parameter is required. If `currency_id` is not provided, the project-default currency is used. Returns HTTP 204 on success.

Related: [GET /credit-history](https://carecloud.readme.io/reference/getcredithistory), [GET /customers](https://carecloud.readme.io/reference/getcustomers)

⚠️ This action method is disabled by default. Please contact the CareCloud administrator to allow usage of this method.
⚠️ Action methods are available only in the Enterprise interface.

## Headers

- `Accept-Language` string

## Request body

- object
  - `original_customer_id` string, required — The unique ID of the original credit holder. [GET /customers](https://carecloud.readme.io/reference/getcustomers)
  - `new_customer_id` string, required — The unique ID of the new credit holder. [GET /customers](https://carecloud.readme.io/reference/getcustomers)
  - `amount` number, float, required — Number of the transferred credits.
  - `credit_type_id` string, required — The unique ID of the credit type for the transferred credits. [GET /credit-types](https://carecloud.readme.io/reference/getcredittypes)
  - `currency_id` string — The unique ID of the currency. If not set, the default currency of the project is used. [GET /currencies](https://carecloud.readme.io/reference/getcurrencies)
  - `note` string — Note for the credit transfer.

## Response `204`

No Content

## Other responses

- `400` — Bad input parameter. The response body's `error.error_data.invalid_params[]` array lists the parameters that caused the failure, each carrying a `reason` code. See the `BadRequestErrorBody` schema for the generic reason taxonomy. Operations with domain-specific business rules document additional reasons at the operation level.
- `401` — The client has invalid credentials or auth token.
- `403` — The client does not exist or the client tried to access an unauthorized property or resource.
- `404` — The resource was not found.
- `405` — The resource does not support the specified HTTP method.
- `429` — Too many requests - more than the resource limit.
- `500` — Server is not working as expected.
- `503` — Temporary state when the service is temporarily unavailable, overloaded or there is a maintenance window.

---

[API](https://skmtc.net/crmcarecloud/apis/rest-api-reference.md) · [All operations](https://skmtc.net/crmcarecloud/apis/rest-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/crmcarecloud/rest-api-reference/revisions/329c06dbf8d9/schema)
