# Move all of an order's payments to customer credit

```http
PATCH https://secure.yoprint.com/v2/api/store/{team_slug}/v2/sales_order/{hash_id}/credit/refund_all_to_customer_credit
```

- API version: v2
- Operation ID: `v2_public_sales_order_credit_refund_all_to_customer_credit`
- Section: Invoices and payments › [Payments](https://developer.yoprint.com/reference/payments.md)
- Web page: https://developer.yoprint.com/reference/payments/v2-sales-order-credit-refund-all-to-customer-credit/
- Authentication: `Authorization: Bearer YOUR_API_KEY`

Moves everything paid on the order to the customer's credit. Deleting a published order does the same. The answer has no data. `{hash_id}` is the order's `id` (for example `V4keXwwxMQyXw7`); the `ord_` unique key is not accepted here.

## Permission

Needs permission to see this order's finances and to change it: the team owner; or a role with `view_order_finance` (View Sales Order Pricing) and `view_all_order` (or `view_self_order`, for orders the user created or is assigned to), and `update_all_order` (or `update_self_order`, for orders the user created or is assigned to). Otherwise 403 with a short body, `{"message": "No permission to change this order payment."}`. The order must be published.

## Business rules

- The order must have money paid on it: otherwise 422 "Insufficient Order Balance".
- Nothing moves while any payment holding money on the order is frozen by an open dispute or review: the freeze 422 (`customer_payment_disputed_funds_unavailable` or `invoice_payment_funding_withheld`, with `error.reason`).

## Side effects

- Money from a Customer Portal payment goes back to that payment's credit. Deletes all the order's payment links (allocations), then raises the customer's credit by what the payments still hold (after refunds and earlier moves) and sets the order's paid amount to 0; updates invoices and customer totals.

## Path parameters

- `team_slug` (string, required): Your team slug, shown as Team ID next to your API key in Profile. Example `your-team`.
- `hash_id` (string, required): The sales order's or quote's `id` (a hash id). The `ord_` unique key and the order number do not work here. Example `V4keXwwxMQyXw7`.

## Request body

This operation takes no request body.

### Example request

```bash
curl -X PATCH 'https://secure.yoprint.com/v2/api/store/your-team/v2/sales_order/V4keXwwxMQyXw7/credit/refund_all_to_customer_credit' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'Accept: application/json' \
  -H 'X-Yoprint-Decimal-Format: exact-v1'
```

## Response

`200` Successful response.

Fields:

- `data` (null, required): No data.
- `status` (integer, required)
- `success` (boolean, required)

Example response:

```json
{
  "data": null,
  "status": 200,
  "success": true
}
```

## Errors

- `401` The API key is missing or wrong (`unauthenticated`).
- `403` You are not allowed to do this. `api_access_not_in_plan`: your team's plan doesn't include API access (Pro and above, with an active subscription or trial), so every request answers this until the team upgrades. When your role lacks the permission the operation needs, the body is only `{"message": "Insufficient Permission"}`. Other refusals use the error envelope, with `unauthorized` or `user_is_not_authorized`.
  - When: Your role can't see this order's finances or change it. This 403 has a short body, `{"message": "No permission to change this order payment."}`, with no `success` or `error`. Fix: Ask the team owner for View Sales Order Pricing and permission to edit this order, or to be assigned to it.
- `404` Not found. `page_not_found`: the team slug is unknown, you are not a member of the team, or an id in the path is not one of this team's. `code: null`, with a message that starts "No query results for": there is no record with that id.
- `422` Validation failed or the payment mutation was rejected by business rules.
  - When: Nothing paid, or a draft order ("Action Not Allow"). Fix: Check the order's payments first.
  - When: A payment is frozen by an open dispute or review (`customer_payment_disputed_funds_unavailable` or `invoice_payment_funding_withheld`, with `error.reason`). Fix: Wait for the provider's decision, then try again.

## Related

- [Move part of an order's payments to customer credit](https://developer.yoprint.com/reference/payments/v2-sales-order-credit-refund-to-customer-credit.md): `POST /v2/api/store/{team_slug}/v2/sales_order/{hash_id}/credit/refund_to_customer_credit`
