# Create a credit memo

Creates a credit memo.

Endpoint: POST /credit-memos
Version: latest
Security: SecretApiKey, JWT

## Request fields

- `allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `allocations.transactions` (array)
  List of transactions (typically refunds, credits, and chargebacks) that are allocated to reduce the unused amount of a credit memo. - To delete transaction allocations, send an empty transaction allocation array in the request. - To modify transaction allocations, send a modified transaction allocation array in the request. - If you do not want to modify or delete transaction allocations, do not send a transaction allocation array in the request.
- `allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `allocations.transactions.amount` (number)
  Amount of credit that is allocated from the credit memo to the transaction. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the transaction amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The transaction amount.
- `allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `allocations.invoices` (array)
  List of invoices that the credit memo is allocated to. - To delete invoice allocations, send an empty invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be deleted. - To modify invoice allocations, send a modified invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be modified. - If you do not want to modify or delete invoice allocations, do not send an invoice allocation array in the request.
- `allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `allocations.invoices.amount` (number)
  Amount of credit that is allocated from the credit memo to the invoice. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the invoice due amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The invoice due amount.
- `items` (array)
  Items of the credit memo.
- `items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.description` (string)
  Description of the credit memo item.
- `items.unitPrice` (number, required)
  Price of the credit memo item.
- `items.quantity` (integer, required)
  Quantity of the credit memo item.
- `items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.tax` (any)
  Credit memo item tax.
- `reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `transactionId` (string | null)
  ID of the transaction associated with the credit memo. Associating a transaction does not change the unused amount of the credit memo. The transaction must be approved and associated with the same customer as the credit memo. Approved transactions of any type are accepted, including refunds and voided sales. If the transaction result changes later, the association is retained. If this field is omitted in an update request and `customerId` is not changed, this field retains its current value. If this field is omitted and `customerId` is changed, the transaction is removed from the credit memo. To remove the transaction from the credit memo, set this field to `null`.
  Example: txn_0YVDTQJ8YKC82BP14NE2R7V2XT

## Response 201 fields

- `id` (string)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `number` (integer)
  Auto-incrementing number based on the sequence of credit memos for any particular customer.
- `allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `allocations.transactions` (array)
  List of transactions (typically refunds, credits, and chargebacks) that are allocated to reduce the unused amount of a credit memo. - To delete transaction allocations, send an empty transaction allocation array in the request. - To modify transaction allocations, send a modified transaction allocation array in the request. - If you do not want to modify or delete transaction allocations, do not send a transaction allocation array in the request.
- `allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `allocations.transactions.amount` (number)
  Amount of credit that is allocated from the credit memo to the transaction. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the transaction amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The transaction amount.
- `allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `allocations.transactions.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `allocations.transactions.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `allocations.invoices` (array)
  List of invoices that the credit memo is allocated to. - To delete invoice allocations, send an empty invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be deleted. - To modify invoice allocations, send a modified invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be modified. - If you do not want to modify or delete invoice allocations, do not send an invoice allocation array in the request.
- `allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `allocations.invoices.amount` (number)
  Amount of credit that is allocated from the credit memo to the invoice. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the invoice due amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The invoice due amount.
- `allocations.invoices.createdTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `items` (array)
  Items of the credit memo.
- `items.id` (string)
  ID of the credit memo item.
  Example: crmm_itm_01HXC7PK2C6F367VYCFXDRYMAQ
- `items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.description` (string)
  Description of the credit memo item.
- `items.unitPrice` (number, required)
  Price of the credit memo item.
- `items.quantity` (integer, required)
  Quantity of the credit memo item.
- `items.price` (number)
  Total price of the credit memo item.
- `items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.tax` (any)
  Credit memo item tax.
- `status` (string)
  Status of the credit memo.
  Enum: "draft", "quotation", "issued", "applied", "partially-applied", "voided"
- `reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `taxAmount` (number)
  Sum of items tax amount of an invoice to credit.
- `totalAmount` (number)
  Total amount of all credits in the credit memo, including items, shipping, and tax.
- `unusedAmount` (number)
  Unused credit memo amount that has not been allocated.
- `revision` (integer)
  Number of times the credit memo has been modified.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `quoteId` (string | null)
  ID of the related quote.
  Example: qt_0YVF9605RKC62BP14NE2R7V2XT
- `transactionId` (string | null)
  ID of the transaction associated with the credit memo. Associating a transaction does not change the unused amount of the credit memo. The transaction must be approved and associated with the same customer as the credit memo. Approved transactions of any type are accepted, including refunds and voided sales. If the transaction result changes later, the association is retained. If this field is omitted in an update request and `customerId` is not changed, this field retains its current value. If this field is omitted and `customerId` is changed, the transaction is removed from the credit memo. To remove the transaction from the credit memo, set this field to `null`.
  Example: txn_0YVDTQJ8YKC82BP14NE2R7V2XT
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer", "invoice"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)

## Response 401 fields

- `status` (integer)
  HTTP status code.
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

## Response 403 fields

- `status` (integer)
  HTTP status code.
- `error` (string)
  Message that describes why the request is forbidden. Most responses use a descriptive message, such as `Not allowed to change security settings`. If the organization requires multi-factor authentication (MFA) and MFA verification has not been completed for the session, this value is `mfa_required`. If the request sets `requireMfa` to `true` and MFA verification has not been completed for the session, this value is `mfa_required_for_caller`.
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

## Response 422 fields

- `status` (integer)
  HTTP status code.
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
- `invalidFields` (array)
  Invalid field details.
  Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}]
- `invalidFields.field` (string)
  Name of the field. Dot notation is used for nested object field names.
- `invalidFields.message` (string)
  Message field.

## Response 429 fields

- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
  Example: about:blank
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
  Example: Rate Limit Exceeded
- `status` (integer)
  HTTP status code.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
  Example: A request cannot be executed because the user has sent too many requests within a certain period of time
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
